我正在开发MVC上的Web应用程序,我需要使用pin代码自动查找两个位置之间的距离。所以,我开始使用谷歌地图距离矩阵API,如下所示:
https://maps.googleapis.com/maps/api/distancematrix/xml?origins=" + Convert.ToString(origin) + "&destinations=" + Convert.ToString(destination) + "&key='MY key'
API适用于印度的密码,但我必须在柬埔寨部署应用程序,而柬埔寨的PIN代码则无法使用API。
有人可以帮助我吗?
答案 0 :(得分:2)
我查看了您的请求https://maps.googleapis.com/maps/api/distancematrix/xml?origins=12413&destinations=12211&key=YOUR_API_KEY
请注意,原点和目的地参数中的12413
和12211
值非常不明确。您必须提供更精确的地址才能获得结果。距离矩阵API将在内部对12413
和12211
进行地理编码。
例如,12413
将被编码为“Cairo,NY 12413,USA”,这是美国的邮政编码。您可以在Geocoder工具中看到这一点:
https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D12413
12211
将被地理编码为'Albany,NY 12211,USA':
https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D12211
在这两种情况下,它都不是您所期望的柬埔寨的密码。
更重要的是,当我尝试使用组件过滤在柬埔寨找到邮政编码12413
或12211
时,我得到了ZERO_RESULTS:
尝试从柬埔寨的坐标反向地理编码中获取邮政编码也会导致ZERO_RESULTS:
https://maps.googleapis.com/maps/api/geocode/json?latlng=11.55486%2C104.905679&result_type=postal_code&key=MY_API_KEY
虽然可以找到相同坐标的位置:
https://maps.googleapis.com/maps/api/geocode/json?latlng=11.55486%2C104.905679&result_type=locality&key=MY_API_KEY
这是'Phnom Penh',地点ID为ChIJ42tqxz1RCTERuyW1WugOAZw
。
考虑到所有这些事实,Google在其数据库中没有针对柬埔寨的密码信息。
我建议您在应用程序中使用地点自动填充功能。这样,用户可以选择建议的地址,并且可以使用用户选择的地点ID来执行距离矩阵请求。还要了解官方文档中的地理编码最佳实践:
https://developers.google.com/maps/documentation/geocoding/best-practices
我希望这有帮助!