İl ve ilceye göre google servislerini kullarak ve eşleştirerek konum bulabilir ve kullanabilirsiniz. bunun için biz öncelikle google konum apini aktif edip keyimizi asağıdaki kod karsılığına yazalım sonra birtane json dosyası oluşturup buradaki il ilçe bilgilerini gelen konumla eşleştirip aktifleştirelim
Json formatımız [
{ "id":1,"il": "ADANA",
"ilce": "ADANA",
"value":111},
{ "id":2,"il": "ADANA",
"ilce": "ALADAĞ",
"value":112},
{ "id":3,"il": "ADANA",
"ilce": "CEYHAN",
"value":113}]
<script src="https://maps.googleapis.com/maps/api/js?key=kendi keyimiz"
type="text/javascript"></script>
<script>
//konumget diye bir metod tanımlıyoruz.
function KonumGet(){
var geocoder; var a;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
// SetCurrentPrayerTimeColor();
}
function successFunction(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
codeLatLng(lat, lng);
}
var cityName;
function errorFunction(ex) {
console.log(ex);
}
function codeLatLng(lat, lng) {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat, lng);
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[1]) {
var indice = 0;
var city, region, country;
var fullAddress = results[1].formatted_address;//konuma ait tüm adres bilgisini getirir.
//Yurt dışı ülke bilgileri getiriliyor
try {
//ülkeye ait şehir bilgisi getiriliyor
$.getJSON("https:jsondosyasi.json", function (data) {
var selectedLocation;
var selectedState;
//önce state bilgisinin eşleşmesine bakılıyor. ayrı ayrı bakılmamasının nedeni örnek olarak ankara bala ilçesi için veri city bilgisinde arandığında ankara ve bala olarak iki sonuç döndürecektir. Yani state bilgisi ile city bilgisi aynı olabildiği için aradaki city'i ayıklamak için aşağıdaki kod kullanılmıştır.
selectedState = $.grep(data, function (val) {
return fullAddress.toUpperCase().indexOf(val.il.toUpperCase()) > -1;
});
if (selectedState && selectedState.length > 0) {
selectedState = selectedState[0];
selectedCity = $.grep(data, function (val) {
return (fullAddress.toUpperCase().indexOf(val.il.toUpperCase()) > -1 && fullAddress.toUpperCase().indexOf(selectedState.ilce) > -1);
});
if (selectedCity && selectedCity.length > 0) {
selectedCity = selectedCity[0];
selectedLocation = selectedCity;
}
else {
selectedLocation = selectedState;
}
} else {
//Eğer hiçbir il veya ilçe bulamazsa
}
selectedCity.ilce
//bizim ilçemiz oluyor.
selectedCity.il
//bizim ilimiz oluyor.
}).fail(function (ex) {
console.log(ex);
//hata alındığında ankara yazılabilir
});
} catch (e) {
console.log(e.message);
//hata alındığında ankara yazılabilir
}
}
else {
alert("No results found");
}
}
else {
alert("Geocoder failed due to: " + status);
}
});
}
}