Google Geocoding API有严重的限制(每天2,500个请求),我们总是会遇到限制错误。他们的business license花费了10,000美元,这对我们来说太贵了。
服务应与不同语言和不同国家合作。
服务应验证地址并返回lat / lng。地址可以是具有不同格式的字符串。
我们已准备好为此类服务付费,最好使用RESTful API。
答案 0 :(得分:5)
我在SmartyStreets工作,你所描述的是他们的核心领域。
您可能对LiveAddress感兴趣,它将地址转换为lat / lon和can process thousands of requests per second。它跨地理分布在3个数据中心,并具有RESTful端点。你可以up to 100 addresses per request。如果你有一个Excel或CSV文件或类似的东西,还有一个列表处理版本。
最高price tag是1万美元,但它为您提供一年无限查询。
一些示例代码位于https://github.com/smartystreets/LiveAddressSamples。
他们的许可协议没有限制您使用的限制。 Dbaseman是对的:你得到限制错误,因为它违反了服务条款(除非你从他们那里获得营业执照,但即使这样,地址也是“最好的猜测” - 没有标准化和经过CASS认证的服务验证这是要记住的事情。
答案 1 :(得分:5)
你有没有看过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);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 2 :(得分:1)
不,没有,如果您查看他们的许可,它明确旨在阻止您使用他们的服务。基本上,如果
,您只能使用它它们还禁止您将其服务结果保存/缓存到数据库。谷歌可以很容易地使用他们的工具进行原型设计,但是一旦你开始扩大规模,你就会付钱(在这方面与M $没那么不同)。
答案 3 :(得分:0)
以下选项可能适合您
答案 4 :(得分:0)
使用限制
每个应用程序限制(由您的访问密钥标识):每天100,000次呼叫
每IP限制:/ v1 / public /:每小时1,000次通话; / v1 / yql /:每小时10,000次呼叫