我目前正在构建一个基于位置的应用程序,该应用程序依赖于正确转换为文本位置的设备的纬度和长度。
我目前的问题如下(以经度-37.8047079,144.9641467为例(:
双
地点 API
https://maps.googleapis.com/maps/api/place/textsearch/json?query=-37.8047079,144.9641467&key
和
地理编码接口
https://maps.googleapis.com/maps/api/geocode/json?address=-37.8047079,144.96414677&key
往返:">8-14 Little Queensberry St, Carlton VIC 3053, Australia">
然而,由于某种原因,当在谷歌地图本身中输入相同的经度时,它会导致位置135 Queensberry St, Carlton VIC 3053
这对我来说是一个主要问题,因为路由 API 返回相同的稍后地址导致两个服务不匹配
我做错了什么吗,如果我做错了什么,有没有办法解决它?
请注意,第二个地址是我认为"正确"的地址
提前感谢!
执行反向地理编码时,应使用latlng
参数而不是address
参数。所以查询
https://maps.googleapis.com/maps/api/geocode/json?latlng=-37.8047079%2C144.96414677&key=MY_API_KEY
返回多个项。第一个是Shop2/143 Queensberry St, Carlton VIC 3053
类型的餐厅,第二个是135 Queensberry St, Carlton VIC 3053, Australia
类型的street_address。
您可以在地理编码器工具中看到以下结果:
https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D-37.804708%252C144.964147
看起来餐厅更接近您提供的坐标。但是,如果您打算获取街道地址,只需按街道地址类型过滤反向地理编码结果即可。
https://maps.googleapis.com/maps/api/geocode/json?latlng=-37.8047079%2C144.96414677&result_type=street_address&key=YOUR_API_KEY
此请求将返回预期结果。
我希望这有帮助!