Как поменять геокод без гугла?

Существуют ли какие-либо веб-сервисы (платные или бесплатные) помимо API Карт Google, которые позволяют изменять геокод?

Мое конкретное приложение будет иметь доступ к широте и долготе, и я должен иметь возможность получить почтовый индекс США или штат.

Причина, по которой я не могу использовать Google, заключается в том, что Условия предоставления услуг указывают на то, что если вы используете API Карт Google, вам необходимо использовать данные для отображения карты Google.

Я использую C# .Net Framework на случай, если это актуально.

7 ответов

Я использую http://nominatim.openstreetmap.org/ для обратного поиска, он очень прост в использовании:

http://nominatim.openstreetmap.org/reverse?format=json&lat=54.9824031826&lon=9.2833114795&zoom=18&addressdetails=1

Geonames может дать вам либо название места:

http://ws.geonames.org/findNearbyPlaceName?lat=40.65&lng=-73.78

или почтовый индекс:

http://ws.geonames.org/findNearbyPostalCodes?lat=40.65&lng=-73.78

Это бесплатно, если вы кредитуете их, и вам нужно менее 15000 просмотров в день. Вы можете заплатить, если вам нужно больше.

Я не фанат MS. Но проверьте это: http://msdn.microsoft.com/en-us/library/ff859477.aspx

Похоже, что API-интерфейс RESTful Location Service не содержит каких-либо ограничений.

Вы можете использовать API поиска местоположения по точкам: http://msdn.microsoft.com/en-us/library/ff701710.aspx

Я опробовал образец для geoNames, результат не достаточно хорош для меня, так как мне нужна информация округа, и время отклика медленное.

OpenStreetMap:

$.getJSON('https://nominatim.openstreetmap.org/reverse', {
    lat: position.coords.latitude,
    lon: position.coords.longitude,
    format: 'json',
}, function (result) {
    console.log(result);
}); 

GeoNames:

$.getJSON('https://ws.geonames.org/countryCode', {
    lat: position.coords.latitude,
    lng: position.coords.longitude,
    type: 'JSON',
    username: 'demo'
}, function (result) {
    console.log(result);
});

ArcGIS предоставляет бесплатный (и платный) API:

https://developers.arcgis.com/rest/geocode/api-reference/geocoding-reverse-geocode.htm

Он предоставляет адрес для данного местоположения (широта / долгота). Для этого даже не требуется ключ API, но они предлагают вам получить бесплатный, чтобы избежать ограничения скорости.

Вот пример вызова API с ответом JSON:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?location=4.366281%2C50.851994&langCode=fr&outSR=&forStorage=false&f=pjson

Служба поиска Nominatim от MapQuest Open API бесплатна и не имеет ограничения по запросу (мягкое ограничение 1/ сек).

http://open.mapquestapi.com/nominatim/v1/reverse.php?format=json&lat=44.0776182&lon=-92.5296981

TOS можно найти здесь

Взгляните на Geocoda - бесплатно до 1K прямых или обратных вызовов геокодирования в месяц, по разумной цене и больше.

Другие вопросы по тегам