使用方向服务识别特定机场

时间:2017-09-01 02:49:35

标签: google-maps google-maps-api-3

我使用谷歌地图方向服务创建了一个票价计算器,以计算在“发件人”文本框中输入的2个位置之间的距离。我还指定了自动完成API以获取位置列表,以便在键入时自动完成。这是完美的工作,但现在需求发生了变化。我想确定用户是否已选择或输入任何机场作为From或To位置。并基于此我想计算票价。我还有机场名称列表,所以我必须查看输入的地址是否来自列表。我怎么能这样做?

1 个答案:

答案 0 :(得分:-1)

您可以获取地点详细信息并检查类型字段是否包含" airport"。添加侦听器以拦截自动完成的place_changed事件,并分析PlaceResult对象的类型字段。您可以使用Array.prototype.includes()功能来实现此目的。

autocomplete.addListener('place_changed', function() {
    var place = autocomplete.getPlace();
    if (!place.geometry) {
        window.alert("No details available for input: '" + place.name + "'");
        return;
    }

    if (place.types.includes("airport")) {
        //Implement your logic here
    }
});

您可以在官方文档中查看地方自动填充的示例。 E.g。

https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete

请注意,有时用户可以选择看起来像机场名称的东西,但实际上是不同的东西,例如与机场共享其名称的地铁站。在这种情况下,您应该应用此答案中描述的解决方法:

https://stackoverflow.com/a/44928956/5140781

我希望这有帮助!