我目前正在构建一个基于位置的应用程序,该应用程序依赖于将经适当翻译成文本位置的设备的纬度和经度。
我当前的问题如下(以lat / long -37.8047079,144.9641467为例):
两者
Places API
https://maps.googleapis.com/maps/api/place/textsearch/json?query=-37.8047079,144.9641467&key
和
地理编码API
https://maps.googleapis.com/maps/api/geocode/json?address=-37.8047079,144.96414677&key
返回:“ 8-14 Little Queensberry St,Carlton VIC 3053,Australia”
但是,当在Google地图中键入相同经度长时,由于某种原因或其他原因,它会导致位置 135 Queensberry St,Carlton VIC 3053
由于 routes API返回相同的后继地址,这对我来说是一个主要问题
我在做错什么吗?如果我没有做错,有没有解决的办法?
请注意,第二个地址是我认为是“正确”的地址
谢谢!
答案 0 :(得分:0)
执行reverse geocoding时,应使用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
的场所,第二个是street_address类型的135 Queensberry St, Carlton VIC 3053, Australia
。
您可以在Geocoder工具中看到以下结果:
餐厅似乎更接近您提供的坐标。但是,如果您打算找回街道地址,只需按街道地址类型过滤反向地理编码结果即可。
https://maps.googleapis.com/maps/api/geocode/json?latlng=-37.8047079%2C144.96414677&result_type=street_address&key=YOUR_API_KEY
此请求将返回预期结果。
我希望这会有所帮助!