2012-12-21 11 views
5

Mam tę funkcję, aby zwrócić sugestie adresu bing na podstawie adresu wprowadzonego przez użytkownika. Już określam userLocation, ale wyniki nie są tak dokładne, jak bym mógł sobie wyobrazić. Czy jest coś ekstra, co powinienem tu robić? Mogę ręcznie określić stan lub kod pocztowy, jeśli będę musiał, ale wolałbym uniknąć przetwarzania końcowego.Jak mogę filtrować wyniki interfejsu API Bing Location według lokalizacji użytkownika, aby automatycznie zakończyć?

Na przykład wpisanie 111 zwraca wyniki z 111, NY, 111 Szwecja, 111 Dania. Chciałbym ograniczyć to tylko do Stanów Zjednoczonych i naprawdę tylko w kilku stanach, które mogę skasować. Kiedy ręcznie określam opcje dla PostalCode w danych, zastępuje to, co użyłem w zapytaniu.

var geolocate = function(options) { 
    $.ajax({ 
     url: "http://dev.virtualearth.net/REST/v1/Locations", 
     dataType: "jsonp", 
     data: { 
      key: "KEY", 
      q: options.address, 
      userLocation: options.latitude + ',' + options.longitude, 
      maxResults: options.maxResults, 
     }, 
     jsonp: "jsonp", 
     success: function(data) { 
      if (options.success instanceof Function) { 
       options.success(data); 
      } 
     }, 
     error: function(xhr, status, text) { 
      alert('ERROR:\n'); 
     } 
    }); 
}; 

Odpowiedz

1

Jak się okazuje, to rzeczywiście to, co zamierzałem (Chyba testowanie okazuje inaczej) Byłem podając adres jako pojedynczy param, Q, ale jeśli mogę określić addressLine w połączeniu z userLocation, to filtruje wyniki zgodnie z oczekiwaniami.

var geolocate = function(options) { 
    $.ajax({ 
     url: "http://dev.virtualearth.net/REST/v1/Locations", 
     dataType: "jsonp", 
     data: { 
      key: "KEY", 
      addressLine: options.address, 
      countryRegion: 'US', 
      userLocation: options.latitude + ',' + options.longitude, 
      maxResults: options.maxResults, 
     }, 
     jsonp: "jsonp", 
     success: function(data) { 
      if (options.success instanceof Function) { 
       options.success(data); 
      } 
     }, 
     error: function(xhr, status, text) { 
      alert('ERROR:\n\n'); 
     } 
    }); 
}; 
0

nie jestem bardzo obeznany z API Bing Maps poza pewnym majsterkowania zrobiłem jakiś czas temu ... ale czy próbował przekazując IP lub łącznie lokalizację? Być może będziesz musiał odwrócić wyszukiwanie użytkowników Lat/Lng, aby uzyskać nazwę miasta ... dlaczego nie będą ekstrapolować informacji z UserLocation, co jest poza mną.

http://msdn.microsoft.com/en-us/library/ff701714.aspx

+0

Niestety, zarówno IP jak i userLocation nie wydają się zawężać wyników bardzo drastycznie. Muszę wykluczyć wszystkie wyniki, szczególnie te z USA. – AceoStar

Powiązane problemy