Получить LatLng из почтового индекса-Google Maps API
все, что я хочу, это простой пример кода, который показывает мне, как получить элемент latlng из введенного почтового индекса или города/штата.
3 ответа:
Не могли бы вы просто вызвать следующую замену {zipcode} с почтовым индексом или городом и штатом http://maps.googleapis.com/maps/api/geocode/json?address= {zipcode}
вот ссылка с тем, как Геокодировать с помощью JavaScript:Геокод прогулка-через. Если вам нужны конкретные номера lat/lng, вызовите геометрию.местоположение.широта() или геометрии.местоположение.lng () (API для google.карты.Latlng с класс)
пример получения lat / lng:
var lat = ''; var lng = ''; var address = {zipcode} or {city and state}; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { lat = results[0].geometry.location.lat(); lng = results[0].geometry.location.lng(); }); } else { alert("Geocode was not successful for the following reason: " + status); } }); alert('Latitude: ' + lat + ' Logitude: ' + lng);
просто намек: почтовые индексы не являются уникальными во всем мире таким образом, это стоит предоставить код ISO страны в запросе (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
например, ищет координаты польского языка (код iso
PL
) zipcode01-210
:
https://maps.googleapis.com/maps/api/geocode/json?address=01210,PL
как получить код страны пользователя?
Если вы хотите получить информацию о стране пользователя на основе IP-адреса есть услуги для него, например, вы можете сделать Получить запрос на: http://ip-api.com/json
вот функция, которую я использую для своей работы
function getLatLngByZipcode(zipcode) { var geocoder = new google.maps.Geocoder(); var address = zipcode; geocoder.geocode({ 'address': address }, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { var latitude = results[0].geometry.location.lat(); var longitude = results[0].geometry.location.lng(); alert("Latitude: " + latitude + "\nLongitude: " + longitude); } else { alert("Request failed.") } }); return [latitude, longitude]; }