我想弄清楚用戶是否在使用地理定位的城市附近(在50英里半徑內)。地理位置腳本,以確定當我在城市附近的城市評估爲假
這是我的。它是一個腳本,用於檢查我是否在陣列中的任何城市。 我在紐約城市的一個城市,但它正在評估其他人,因爲我看到的功能發生。
下面是腳本:
if('geolocation' in navigator){
var lat, lon;
var SFlocations = ['richmond', 'berkely', 'daly city', 'oakland', 'san francisco'];
var NYlocations = ['new york', 'new york city', 'new jersey', 'newark', 'kendall park', 'fraklin park', 'new brunswick', 'east brunswick', 'edison', 'manhattan', 'queen', 'staten island', 'bronx'];
navigator.geolocation.getCurrentPosition(function(pos){
lat = pos.coords.latitude;
lon = pos.coords.longitude;
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+lon+'&sensor=true').done(function(res){
var results = res.results;
var address = results[2].address_components;
var city = address[1].long_name.toLowerCase();
if(jQuery.inArray(city, SFlocations) !== -1) $('#input').css('backgroundImage', 'url(/cityBackground/SanFrancisco/day.png)').css('backgroundPosition', 'bottom left').css('backgroundSize', 'cover');
else if(jQuery.inArray(city, NYlocations) !== -1) $('#input').css('backgroundImage', 'url(/cityBackgrounds/NYC/night.png)');
else setBGPerTime();
});
});
}
else alert("don't supports geolocation");
這裏是一個JS小提琴:http://jsfiddle.net/s9VrT/
這似乎是合乎邏輯,我想不通爲什麼它被評估爲false。
我將不勝感激任何和所有的幫助!
編輯:所以看來我抓住了結果數組的錯誤部分。看起來城市位於這裏:results [0] [address_components] [2]。對於從不同位置進行測試的其他人來說,這是否正確?但是當我試圖抓住數組的一部分時,它說address_components沒有被定義。這裏是一個小提琴:http://jsfiddle.net/s9VrT/4/
編輯:好,我知道用這個var results = res.results; var city = results[0].address_components[2].long_name.toLowerCase();
的城市。但是,我不認爲這是正確的方式。這個位置獲得了城市,但我認爲它不適用於每個位置。 無論用戶在哪個位置,我怎樣才能獲得城市?
那麼,什麼是谷歌從返回到底是什麼? 'console.log(city)' – epascarello
@epascarello middlesex county。這是縣的名字,但不是城市。 – gomangomango
不要硬編碼這些數組索引。您需要使用正確的[「type」](https://developers.google.com/maps/documentation/geocoding/#Types) – geocodezip