Как поменять геокод без гугла?
Существуют ли какие-либо веб-сервисы (платные или бесплатные) помимо API Карт Google, которые позволяют изменять геокод?
Мое конкретное приложение будет иметь доступ к широте и долготе, и я должен иметь возможность получить почтовый индекс США или штат.
Причина, по которой я не могу использовать Google, заключается в том, что Условия предоставления услуг указывают на то, что если вы используете API Карт Google, вам необходимо использовать данные для отображения карты Google.
Я использую C# .Net Framework на случай, если это актуально.
7 ответов
Я использую http://nominatim.openstreetmap.org/ для обратного поиска, он очень прост в использовании:
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:
Служба поиска Nominatim от MapQuest Open API бесплатна и не имеет ограничения по запросу (мягкое ограничение 1/ сек).
http://open.mapquestapi.com/nominatim/v1/reverse.php?format=json&lat=44.0776182&lon=-92.5296981
TOS можно найти здесь
Взгляните на Geocoda - бесплатно до 1K прямых или обратных вызовов геокодирования в месяц, по разумной цене и больше.