我的工作地点正在考虑购买第三方工具,用于基于批量的美国和加拿大地址修正,以及地理编码.
请注意,我们是一个C/C++ Unix商店.
我可以在Google Maps API文档的哪个位置找到解释accuracy地理编码查找值的表格?
V2和V3之间的值范围是否发生了变化?
我正在使用Google Maps V3 api.我正在提交地址搜索以返回正确的地理编码结果,包括地址,建立名称和lat/lngs.
我的问题是来自地理编码器的响应可以采用不同的格式.它始终遵循相同的结构,但是一些响应对address_components数据结构使用不同的键.
例如,某些搜索会导致:
establishment -> location name
street_number -> address street number
route -> the street name
locality -> the city
administrative_area_level_1 -> the state
postal_code -> zip/postal code
Run Code Online (Sandbox Code Playgroud)
然而,如果我要搜索一般区域,例如"Hampton Beach,NH",我会收到:
sublocality -> beach name / area
administrative_area_level_3 -> city/town name
administrative_area_level_1 -> the state
postal_code -> zip/postal code
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,这两个回答有其不同之处.是否有一个已知的jquery库可用于处理这些不同的响应,以返回可用于人类可读方式的地址组件的数据集?
我会注意到响应也返回一个"formatted_address"类型,它返回它:"Hampton Beach,NH 03842,USA"或"Boston University,1 University Rd,Boston,MA 02215-1407,USA"正如你所看到的,这些也是非常不同的.我可以用逗号分割,但我想使用实际的address_components来实现完美的数据库插入.
我无法找到一种方法,可以在不使用谷歌地理编码API的情况下将地址转换为长/纬度坐标.我正在使用Open Layers和Open Street Map,并且因为2.500次/天的限制而不得不避免google api.
我正在使用GeoPy将地址编码为lat,lng.我还想提取每个地址的逐项地址组件(街道,城市,州,邮政编码).
GeoPy返回一个带有地址的字符串 - 但我找不到一种可靠的方法来分隔每个组件.例如:
123 Main Street, Los Angeles, CA 90034, USA =>
{street: '123 Main Street', city: 'Los Angeles', state: 'CA', zip: 90034, country: 'USA'}
Run Code Online (Sandbox Code Playgroud)
Google地理编码API会返回这些单独的组件......有没有办法从GeoPy获取这些组件?(或不同的地理编码工具?)
我有一个网站,需要获取客户输入的地址的纬度和经度.
Google/Bing/Yahoo对我们来说太贵了,所以我们选择了OpenStreetMap/Nominatim.
不幸的是,虽然它在测试期间工作正常,但它未能找到大约50%的地址输入,这是一个大问题.
我有兴趣知道3件事:
1)处理客户确实输入错误地址的情况的最佳方法是什么 - 向他们发送电子邮件并要求他们更正?使用地址段直到找到某些内容?
2)处理地址很好的情况的最佳方法是什么,但我无法用OpenStreetMap找到它?或者我对Nominatim的查询做错了什么?
3)如果OpenStreeMap无法完成任务,有没有人知道免费/廉价替代方案?我知道它是一个开源协作,因此不完整,但我认为它确实有相当好的覆盖率,如果它没有确切的位置它会返回附近的位置 - 也许它确实可能我正在使用它错误.
这是一个例子:"182 livington ave,albany,New York,12210,US"
谷歌地图很容易找到.Nominatim一无所获:http : //nominatim.openstreetmap.org/search?format=xml&addressdetails=0&q=182%20livington%20ave,albany,New%20York,12210,US
的文档
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
Run Code Online (Sandbox Code Playgroud)
文件明确指出:
在前向地理编码请求的情况下,如果提供的信息产生多个可能的位置,则可以返回多个地标对象.
声明它返回一个地标数组.然而,即使我搜索我确定知道的物品有多个条目(好莱坞,华盛顿,丹麦,主要街道等)我总是只有一个条目.
有些人只是耸耸肩说使用谷歌API,但我担心请求限制.
是否有一些设置或黑客来解决这个问题,还是CLGeocoder简单地破坏了?
视口和边界之间的区别在谷歌地理编码API中有什么区别?
对于大国(美国,俄罗斯),视口与界限不同(加拿大的样本请求:http://maps.googleapis.com/maps/api/geocode/xml?address = Canada&_sensor = false,但适用于较小的国家,地区和城市他们是平等的.
我正在构建一个沿路径使用高程的Web应用程序,因此我使用Maps API来提取高程.但是,重要的是我知道这些信息的准确程度.API文档指出,高程分辨率是一个值",表示内插高程的数据点之间的最大距离,以米为单位." 这正是我想要的,但我从这个分辨率得到的值似乎很奇怪.试试下面给出的英格兰南部海岸的例子.
https://maps.googleapis.com/maps/api/elevation/json?locations=50.8,-1.1
此示例的分辨率为610米.现在,通过网络筛选了解谷歌用于高程数据的内容,SRTM 3大量增加.我个人广泛使用这个数据集,我知道它的分辨率为3弧秒,约为90米,可用于世界上大多数国家.但谷歌还表示,他们使用许多高程数据源来提供最佳覆盖率.因此,基于此,我希望高程分辨率至少为90米或更好.但是在整个欧洲的抽样似乎并非如此,并且通常超过100米.考虑到Google将使用的数据类型,对于英格兰南部海岸来说,610米似乎太高了.
所以我的问题是,任何人都可以对此有所了解,或者我错过了什么甚至做错了什么?我知道美国一些地区的分辨率很高(约4米),但正如我所说,直觉上你会期望世界至少拥有90万分辨率.
希望你能帮助我,因为我已经碰壁了,我也很擅长使用Google的Places API.
我不打算发布任何代码,因为我的代码工作正常,当我要描述的2个部分单独运行时.
除了Google提供的Javascript示例中的Autocomplete API之外,我还在使用Google的地方信息.
最初我在文档的底部有以下脚本:
<script src="https://maps.googleapis.com/maps/api/js?&libraries=places&callback=initAutocomplete" async defer></script>
Run Code Online (Sandbox Code Playgroud)
这个脚本位于我的文档顶部:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
Run Code Online (Sandbox Code Playgroud)
这让我觉得,"您已在此页面上多次添加Google Maps API.这可能会导致意外错误." 所以在调查之后我把它们合并在一起就像这样:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&callback=initAutocomplete&sensor=false"></script>
Run Code Online (Sandbox Code Playgroud)
但是,既然我已经这样做了,我收到以下错误:
InvalidValueError: initAutocomplete is not a function
TypeError: searchBox is undefined
Run Code Online (Sandbox Code Playgroud)
当这些脚本没有合并时我没有收到这些错误,但之后我意识到需要Places API的函数停止工作.如果我删除了自动填充API参考,则"地方"功能可以使用.
关于我如何能够将这两者结合起来的任何想法,如图所示合并这些并解决"非功能"问题?
任何建议都会非常感谢,如果您真的需要查看代码,请告诉我.
谢谢,斯蒂芬
javascript geocoding autocomplete google-places-api google-places
geocoding ×10
google-maps ×5
javascript ×2
autocomplete ×1
clgeocoder ×1
geopy ×1
iphone ×1
mailaddress ×1
nominatim ×1
objective-c ×1
openlayers ×1
python ×1
viewport ×1