在获得更多信息后,我想我可以想出一个答案。
仅适用于比利时吗?你不能让他们只选择有效的邮政编码吗?这样可以避免很多错误......但如果你不能,那么你可以尝试其他选择。
现在来回答:
您提到要计算两个地方之间的距离(使用 distancematrix)。如果您只需要计算 2 个地点之间的距离,则不需要使用 distanceMatrix。您可以使用标准的 Directions API(或作为 Google Maps Javascript API v3 一部分的服务)。在任何情况下,使用 Directions 和 distanceMatrix,您都必须在地图上显示服务返回的信息(这是他们的服务条款)。
Directions API 的优点是您可以使用IANA 语言区域子标签和参数将您的请求偏向特定区域(国家)region
。
var start = "1200, Belgium";
var end = "2500, Belgium";
var method = 'DRIVING';
var request = {
origin: start,
destination: end,
region: 'BE',
travelMode: google.maps.DirectionsTravelMode[method]
};
文档在这里:https ://developers.google.com/maps/documentation/javascript/directions#Directions
在检索路线以确保起点和终点值正确之前,您还可以使用其他服务。
地理编码器可能是其中之一(您也可以使用区域代码来区分您的请求)。
Geonames.org还有一个专门的邮政编码搜索网络服务。它需要一个可选的(多个)国家代码作为参数。它将返回您可以在路线请求中使用的坐标。
您可以使用标准方向服务查看以下小提琴以获取完整示例。玩它,看看它是否适合你。尝试输入无效的邮政编码,甚至输入有效的邮政编码,但从始发地或目的地字符串中删除“比利时”,您将看到会发生什么......
JSFiddle demo
希望这可以帮助。