以用户/访客身份而不是服务器身份执行地理编码请求



我目前正在构建一个小型社区,用户可以在其中标记地图上的特定位置。

为了保存Map点,我需要将lat/lng保存到我的数据库中,但用户不知道lat/lng,所以我必须使用(反向)地理编码API。

我查过geonames.org,但全文搜索的结果……不太好。例如,如果我搜索"München",我会得到大约5个具有相同标题/名称的结果。

在谷歌地图Api中测试同一个城市,结果要好得多,所以我想使用谷歌Gecoder。

唯一剩下的问题是,在文档页面上提到了一个限制——每天最多2500个请求。

这听起来很多,但如果我的社区变得更大,那就没那么多了。。。

所以我的问题是,是否可以使用访客IP地址对谷歌地图Api进行地理代码请求,这样谷歌就不会将其视为来自我的服务器的请求?

目前,地理编码的"我的方法"是通过AJAX(jQuery)获得一个单独的PHP文件,同时将搜索字符串传递给它。PHP文件然后用"simplexml_load_file"获得结果,然后将其返回到主文档。

如果你看看这个Geocoder:http://www.gpsvisualizer.com/geocoder/

您可以在页脚中看到这样的描述:"此表单使用JavaScript点播(JSON)代码,使您的Web浏览器成为发出请求的浏览器(而不是gpsvisualizer.com),这意味着您的查询不计入我的服务器限制。">

Short:不,对不起。

备选方案:您可以使用浏览器的javascript地理位置API(只要它们受支持)来获取坐标。这允许您使用,例如,谷歌地理编码api。一些起点可能在这里:支持和链接页面

注意:用户可能会使用谷歌地图小部件来标记自己的位置,在那里你也可以检索坐标。

好吧,我找到了一些东西。看来凯文B是对的。

看看这个:https://developers.google.com/maps/articles/geocodestrat?hl=de

根据这个。。。

何时使用客户端地理编码

基本答案是"几乎总是"。因为地理编码限制是每个用户的会话中,您的应用程序不会到达全局随着用户群的增长而限制。客户端地理编码将不会面临配额限制,除非您在用户会话。因此,运行客户端地理编码时不用担心你的配额。

。。。这是可能的,只需使用Javascript API!

用户搜索"Paris,France",Google JS API返回lat/lng,我将其存储在DB(缓存)中并在Google地图上显示,因此我不需要任何服务器端地理编码请求!

最新更新