Google maps 谷歌地图方向返回原点
我正在尝试获取Google maps 谷歌地图方向返回原点,google-maps,google-directions-api,Google Maps,Google Directions Api,我正在尝试获取起点->航路点->目的地的路线 除了一个特定的要求外,一切都很好: 起源(A点):帕纳马,卡勒·加斯帕尔·埃尔南德斯,贝尼多博士 航路点(B点):BAC Credomatic | Sucursal Plaza纽约,卡莱50号,巴拿马 目的地(A点):帕纳马,卡勒·加斯帕尔·埃尔南德斯,贝尼多博士 因此,如果我从A->B-发出请求,一切正常,使B->A也正常A->A也可以工作。一旦我为那个特定的(B)地址做了一个航路点,谷歌API就会返回零结果 检查URL:https://maps.
起点->航路点->目的地的路线
除了一个特定的要求外,一切都很好:
起源(A点):帕纳马,卡勒·加斯帕尔·埃尔南德斯,贝尼多博士
航路点(B点):BAC Credomatic | Sucursal Plaza纽约,卡莱50号,巴拿马
目的地(A点):帕纳马,卡勒·加斯帕尔·埃尔南德斯,贝尼多博士
因此,如果我从A->B
-发出请求,一切正常,使B->A
也正常<代码>A->A
也可以工作。一旦我为那个特定的(B)地址做了一个航路点,谷歌API就会返回零结果
检查URL:https://maps.googleapis.com/maps/api/directions/json?key=&mode=driving&origin=PH+贝尼多%2C+Calle+Gaspar+O.+Hern%C3%A1ndez%2C+Panam%C3%A1&目的地=PH+Benidor%2C+Calle+Gaspar+O.+Hern%C3%A1ndez%2C+Panam%C3%A1&备选方案=真值和单位=公制和航路点=BAC+Credomatic+|+Sucursal+广场+纽约%2C+Calle+50%2C+Panam%C3%A1
更新
地址取自GoogleAutoCompleteAPI字段,所以我假设它们的格式正确。从A->B
到相同地址的路由运行良好
https://maps.googleapis.com/maps/api/directions/json?key=API_KEY&alternatives=true&units=metric&mode=driving&origin=PH+Benidor%2C+Calle+Gaspar+O.+Hern%C3%A1ndez%2C+Panam%C3%A1&目的地=BAC+Credomatic+Sucursal+Plaza+New+York%2C+Calle+50%2C+Panam%C3%A1
回应
因此,如果地址位于航路点参数中,我假设地址有问题。我检查了方向API请求,其中包含您问题中的起点、目的地和航路点
https://maps.googleapis.com/maps/api/directions/json?origin=PH%20Benidor%2C%20Calle%20Gaspar%20O.%20Hern%C3%A1ndez%2C%20Panam%C3%A1&destination=PH%20Benidor%2C%20Calle%20Gaspar%20O.%20Hern%C3%A1ndez%2C%20Panam%C3%A1&mode=driving&waypoints=BAC%20Credomatic%7CSucursal%20Plaza%20New%20York%2C%20Calle%2050%2C%20Panam%C3%A1&key=MY_API_KEY
响应包含以下地理编码航路点:
"geocoded_waypoints":[
{
"geocoder_status":"OK",
"place_id":"ChIJxX3EIvqorI8RRhwI3jYajZc",
"types":[
"premise"
]
},
{
"geocoder_status":"OK",
"place_id":"ChIJZ1RH5IDoaY8RcqGCRNAAPQw",
"types":[
"establishment","finance","point_of_interest"
]
},
{
"geocoder_status":"OK",
"place_id":"ChIJf1seg-OorI8R_66YzaG7hko",
"types":[
"bank","establishment","finance","food","point_of_interest","restaurant"
]
},
{
"geocoder_status":"OK",
"place_id":"ChIJxX3EIvqorI8RRhwI3jYajZc",
"types":[
"premise"
]
}]
让我们看一下地点ID为ChIJZ1RH5IDoaY8RcqGCRNAAPQw的航路点。它对应于您请求中的“BAC Credomatic”。如果您使用地理编码工具检查地点ID,您将看到“BAC Credomatic”被解析为位于洪都拉斯岛上的商业地点,汽车无法到达
这就是零结果的原因。指定航路点地址时必须更加精确。请参阅以下说明如何正确设置地址字符串格式的文档:
我希望这有帮助 谢谢你的回答!但仍不清楚:1。为什么它没有航路点(简单的A->B
)工作?2.我在查询中输入的所有地址都来自Google自动完成字段,所以我假设它们已经标准化了。如果您使用place Autocomplete,强烈建议使用place ID而不是格式化文本。使用位置ID,您将获得更好的结果。请查看以了解更多详细信息。此外,您还可以检查这个使用位置ID获取方向的示例。在本例中,只有起点和终点,但您也可以实现航路点:
"geocoded_waypoints":[
{
"geocoder_status":"OK",
"place_id":"ChIJxX3EIvqorI8RRhwI3jYajZc",
"types":[
"premise"
]
},
{
"geocoder_status":"OK",
"place_id":"ChIJZ1RH5IDoaY8RcqGCRNAAPQw",
"types":[
"establishment","finance","point_of_interest"
]
},
{
"geocoder_status":"OK",
"place_id":"ChIJf1seg-OorI8R_66YzaG7hko",
"types":[
"bank","establishment","finance","food","point_of_interest","restaurant"
]
},
{
"geocoder_status":"OK",
"place_id":"ChIJxX3EIvqorI8RRhwI3jYajZc",
"types":[
"premise"
]
}]