Как получить долготу и широту для адреса улицы программно (и юридически) - PullRequest
73 голосов
/ 01 октября 2008

Предположительно, это можно получить с помощью Google Maps или другого подобного сервиса. (Только адреса в США недостаточно хороши.)

Ответы [ 15 ]

2 голосов
/ 01 октября 2008

Вы можете ознакомиться с документацией по API Карт Google здесь, чтобы начать это:

http://code.google.com/apis/maps/documentation/services.html#Geocoding

Похоже, что вы также можете сделать что-то для международных адресов, используя Live Maps:

http://virtualearth.spaces.live.com/blog/cns!2BBC66E99FDCDB98!1588.entry

1 голос
/ 31 января 2019

В python с использованием geopy PyPI используется для получения широты, долготы, почтового индекса и т. Д. Вот рабочий пример кода ..

from geopy.geocoders import Nominatim

geolocator = Nominatim(user_agent="your-app-id")

location = geolocator.geocode("Your required address ")

if location:
    print('\n Nominatim ADDRESS :',location.address)
    print('\n Nominatim LATLANG :',(location.latitude, location.longitude))
    print('\n Nominatim FULL RESPONSE :',location.raw)
else:
   print('Cannot Find')

In Nominatim - некоторые адреса не могут работать, поэтому я просто попытался MapQuest .
Возвращается правильно. Mapquest предоставляет 15000 транзакций в месяц по бесплатному плану. Мне этого достаточно.

Пример кода:

import geocoder
g = geocoder.mapquest("Your required address ",key='your-api-key')

for result in g:
   # print(result.address, result.latlng)
   print('\n mapquest ADDRESS :',result.address,result.city,result.state,result.country)
   print('\n mapquest LATLANG :', result.latlng)
   print('\n mapquest FULL RESPONSE :',result.raw)

Надеюсь, это поможет.

1 голос
/ 21 ноября 2016

Вы можете попробовать это в JavaScript для таких городов, как Кохат

var geocoder = new google.maps.Geocoder();
var address = "kohat";
geocoder.geocode( { 'address': address}, function(results, status) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
alert(latitude+" and "+longitude);
  } 
});

enter image description here

1 голос
/ 19 февраля 2016

У меня была партия из 100 000 записей в геокоде, и я столкнулся с лимитом API Google (и поскольку это было для внутреннего корпоративного приложения, нам пришлось перейти на их премиум-сервис, который составляет 10 000 долларов США плюс)

Итак, я использовал это вместо: http://geoservices.tamu.edu/Services/Geocode/BatchProcess/ - у них также есть API. (общая стоимость была около ~ 200 $)

0 голосов
/ 21 февраля 2019

Я знаю, что это старый вопрос, но Google меняет способ получения широты и долготы на регулярной основе.

HTML код

<form>
    <input type="text" name="address" id="address" style="width:100%;">
    <input type="button" onclick="return getLatLong()" value="Get Lat Long" />
</form>
<div id="latlong">
    <p>Latitude: <input size="20" type="text" id="latbox" name="lat" ></p>
    <p>Longitude: <input size="20" type="text" id="lngbox" name="lng" ></p>
</div>

Код JavaScript

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script>

    <script>
    function getLatLong()
    {
        var address = document.getElementById("address").value;
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var latitude = results[0].geometry.location.lat();
                document.getElementById("latbox").value=latitude;
                var longitude = results[0].geometry.location.lng();
                document.getElementById("lngbox").value=longitude;
            } 
        });
    }
    </script>

Для получения дополнительной информации перейдите по этой ссылке https://www.phpkida.com/java-script/get-latitude-longitude-from-address/

...