Получить LatLng из почтового индекса - Google Maps API - PullRequest
59 голосов
/ 07 апреля 2011

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

Ответы [ 5 ]

85 голосов
/ 07 апреля 2011

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

Google Geocoding

Вот ссылка с инструкцией по геокодированию с использованием JavaScript: Geocode walk-thru . Если вам нужны конкретные номера лат / лнг, вызовите geometry.location.lat () или geometry.location.lng () ( API для класса google.maps.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);
11 голосов
/ 25 октября 2017

Подсказка: почтовые индексы не являются уникальными во всем мире , поэтому стоит указать код ISO страны в запросе (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

например, поиск координат польского (изо код PL) почтовый индекс 01-210:

https://maps.googleapis.com/maps/api/geocode/json?address=01210,PL

как получить код страны пользователя?

если вы хотите получить информацию о стране вашего пользователя на основе IP-адреса, для которого есть услуги, например, вы можете сделать запрос GET на: http://ip -api.com / * 1017 JSON *

2 голосов
/ 09 июня 2019

Это просто улучшение предыдущих ответов, потому что оно не работает для меня с некоторыми почтовыми индексами, даже когда в https://www.google.com/maps это работает, я исправил просто добавление слова "почтовый индекс", прежде чем поставить почтовый индекс,как это:

function getLatLngByZipcode(zipcode) 
{
    var geocoder = new google.maps.Geocoder();
    var address = zipcode;
    geocoder.geocode({ 'address': 'zipcode '+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];
}
2 голосов
/ 26 апреля 2019

Вот наиболее надежный способ получить лат / лонг из почтового индекса (т.е. почтового индекса):

https://maps.googleapis.com/maps/api/geocode/json?key=YOUR_API_KEY&components=postal_code:97403
1 голос
/ 13 июня 2018

Вот функция, которую я использую для своей работы

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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...