Получить LatLng из почтового индекса-Google Maps API


все, что я хочу, это простой пример кода, который показывает мне, как получить элемент latlng из введенного почтового индекса или города/штата.

3   51  

3 ответа:

Не могли бы вы просто вызвать следующую замену {zipcode} с почтовым индексом или городом и штатом http://maps.googleapis.com/maps/api/geocode/json?address= {zipcode}

Google Geocoding

вот ссылка с тем, как Геокодировать с помощью 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) zipcode 01-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];
}