gpt4 book ai didi

javascript - 通过邮政编码获取距离矩阵

转载 作者:行者123 更新时间:2023-12-03 07:11:44 25 4
gpt4 key购买 nike

我正在使用 Google Maps API 的距离矩阵来获取比利时两个邮政编码之间的距离。我面临的问题是整个演讲对国家进行评估。有没有办法强制要求该国?

例如:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Belgium+1200&destinations=Belgium+2566

提供菲律宾而非比利时的目的地:

{
"destination_addresses" : [ "Belgium, Dasmariñas, Cavite, Philippines" ],
"origin_addresses" : [ "1200, Belgique" ],
...
}

如果我在请求中使用该国家/地区的法语名称(比利时),也会出现同样的问题:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Belgium+1200&destinations=Belgium+2566

提供法国目的地:

{
"destination_addresses" : [ "2566 Rue de Belgique, 66140 Canet-en-Roussillon, France" ],
"origin_addresses" : [ "1200, Belgique" ],
...
}

最佳答案

在获得更多信息后,我想我可以找到答案。

仅适用于比利时吗?你不能让他们只选择有效的邮政编码吗?这将避免许多错误...但如果你不能,那么你可以尝试其他选择。

<小时/>

现在给出答案:

您提到您想要计算两个地点之间的距离(使用距离矩阵)。如果您只需要计算 2 个地点之间的距离,则无需使用 distanceMatrix。您可以使用标准 Directions API(或作为 Google Maps Javascript API v3 一部分的服务)。无论如何,对于 Directions 和 distanceMatrix,您都必须在 map 上显示服务返回的信息(这是他们的服务条款中的内容)。

Directions API 的优点是您可以使用 IANA language region subtags 将您的请求偏向特定地区(国家)。和 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

在检索路线之前,您还可以使用其他服务来确保出发地和目的地值正确。

Geocoder可能是其中之一(您也可以使用区域代码来调整您的请求)。

Geonames.org还有专门的postal code search网络服务。它采用可选的(多个)国家/地区代码作为参数。它将返回您可以在路线请求中使用的坐标。

您可以检查下面的 fiddle 以获取使用标准路线服务的完整示例。尝试一下,看看它是否适合您。尝试输入无效的邮政编码,或者即使输入有效的邮政编码,但从出发地或目的地字符串中删除“比利时”,您将看到会发生什么...

JSFiddle demo

希望这有帮助。

关于javascript - 通过邮政编码获取距离矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36594193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com