Ole*_*ats 6 geocoding reverse-engineering google-geocoding-api
Google地理编码API有严重的限制(每天2,500个请求),我们总是会遇到限制错误.他们的营业执照花费10,000美元,对我们来说太贵了.
服务应与不同语言和不同国家合作.
服务应验证地址并返回lat/lng.地址可以是具有不同格式的字符串.
我们已准备好为此类服务付费,最好使用RESTful API.
我在SmartyStreets工作,你描述的是他们的核心领域.
您可能对LiveAddress感兴趣,它将地址转换为lat/lon,并且每秒可处理数千个请求.它跨地理分布在3个数据中心,并具有RESTful端点.你可以做高达100个请求的地址.如果您有Excel或CSV文件或类似的东西,还有一个列表处理版本.
最高价格标签是1万美元,但它为您提供一年无限查询.
一些示例代码位于https://github.com/smartystreets/LiveAddressSamples.
他们的许可协议没有限制您的使用限制.Dbaseman是对的:你得到限制错误,因为它违反了服务条款(除非你从他们那里获得营业执照,但即使这样,地址也是"最好的猜测" - 没有标准化和经过CASS认证的服务验证这是要记住的事情.
你看过Nominatim吗?您可以通过OpenStreetMaps数据滚动自己,也可以向OpenStreetMaps或MapQuest发送请求.可能的缺点包括CC许可证(需要归属,可能或可能不是您的问题)和验证问题(数据几乎完全是众包,因此确实会发生不准确).好处包括限制性较低的使用政策,频繁的更新,全球覆盖,当然,你不能打败价格.
见https://jsfiddle.net/4hzzrws5/
var Data =[
{address: "17 rue de l'Abreuvoir. Nantilly. 28260 La Chaussée d'Ivry"},
{address: "52 rue Ernestine 95100 Argenteuil"},
{address: "3 allée Baudelaire 59139 Wattignies"},
{address: "165, Petit chemin d'aix 13320 Bouc Bel Air"},
{address: "54 avenue Yolande d'Aragon 49100 ANGERS"},
{address: "John Doe, Le Rouho Guidel 56520"},
{address: "51100"},
{address: "21 rue du Docteur Gallet - 74000 Annecy"},
{address: "4 Impasse des Cigales, 26500 Bourg lès Valence"},
{address: "83140 SIX FOURS LES PLAGES"},
{address: "35 cours Vitton 69006 Lyon"},
{address: "7 rue lallier 75009"},
{address: "Paul Michel, Villa Pétricciù,Ghjassu Pétricciù, 20221.CERVIONE"}
]
var cityAndCountry = function(res){
var osmObj= res[0].address,
city=osmObj.town || osmObj.city || osmObj.county || '',
country=osmObj.country || '',
iso2 =osmObj.country_code || '';
var out = [ city, country, iso2];
return out
}
var latAndLon = function(res){
var lat= res[0].lat,
lon= res[0].lon;
var out = [lat,lon];
return out
}
var queryOsm = function(url) {
$.getJSON(url, function (data) {
data.length==0?
console.log(["","",""],data)
:console.log(cityAndCountry(data),latAndLon(data),data);
});
}
var delayedPing = function (i,data) {
// console.log(i, data.length)
var d = data[data.length-i];
if(d.address){
// placeAddressOnMap(gc, d.address, d.service||"", d.customer||"")
var url = 'https://nominatim.openstreetmap.org/search/'+d.address+'?format=json&addressdetails=1&limit=1';
queryOsm(url)
} else { console.log(["","","",d.address]) }
var delay = 1000+200*Math.random();
if (--i > 0) { setTimeout(function () { delayedPing(i,data); }, delay); }
}
delayedPing(Data.length,Data);Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>Run Code Online (Sandbox Code Playgroud)
不,没有,如果您查看他们的许可,就会发现它明确旨在阻止您这样使用他们的服务。基本上,你只能在以下情况下使用它:
他们还禁止您将其服务结果保存/缓存到数据库中。谷歌使用他们的工具可以很容易地进行原型设计,但是一旦你开始扩大规模,你就需要付费(在这方面与 M$ 没有太大不同)。
| 归档时间: |
|
| 查看次数: |
7417 次 |
| 最近记录: |