使用React Native Google Maps Directions软件包自动启动导航

时间:2018-03-14 08:15:05

标签: google-maps react-native

我要求在加载Google地图应用程序时,必须自动启动导航。

当前场景 - 显示路线,但用户必须点击start才能开始导航 我找不到与之相关的任何标志?

Found this article which shows the flags used in google maps

Official google maps docs显示将其用作dir_action=navigate,但我对如何将其翻译为react-native-google-maps-directions

毫无头绪

任何想法我们如何处理这个问题?

3 个答案:

答案 0 :(得分:9)

react-native-maps-directions使用Directions API显示路线。请注意,Directions API不包含任何实时导航,仅用于显示路线。 Google Maps API也禁止实时导航。

查看Google Maps API服务条款第10.4(c,iii)段。它读取

  

无导航。您不会将服务或内容用于或与(a)实时导航或路线指导相关;或(b)自动或自动车辆控制。

来源:https://developers.google.com/maps/terms#10-license-restrictions

为了符合Google Maps API服务条款,您应该使用导航模式中的Google Maps URLs打开设备中安装的Google地图应用。

var url = "https://www.google.com/maps/dir/?api=1&travelmode=driving&dir_action=navigate&destination=Los+Angeles";
Linking.canOpenURL(url).then(supported => {
    if (!supported) {
        console.log('Can\'t handle url: ' + url);
    } else {
        return Linking.openURL(url);
    }
}).catch(err => console.error('An error occurred', err)); 

我希望这有帮助!

答案 1 :(得分:2)

100%的工作

如果您要自动开始从当前位置导航到特定位置https://developers.google.com/maps/documentation/urls/android-intents#launch_turn-by-turn_navigation

示例代码

static googleMapOpenUrl = ({ latitude, longitude }) => {
    const latLng = `${latitude},${longitude}`;
    return `google.navigation:q=${latLng}`;
  }

要在点击React-Native时打开google map,就需要这样做

Linking.openURL(googleMapOpenUrl({ latitude: 23.235899, longitude: 78.323258 }));

答案 2 :(得分:0)

    import getDirections from "react-native-google-maps-directions";
    ...

    handleGetDirections = () => {
        const data = {
            source: {
                latitude: originLatitude,
                longitude: originLongitude
            },
            destination: {
                latitude: destinaationLatitude,
                longitude: destinationLatitude
            },
            params: [
                {
                    key: "travelmode",
                    value: "driving"  // may be "walking", "bicycling" or "transit" as well
                },
                {
                    key: "dir_action",
                    value: "navigate" // this instantly initializes navigation using the given travel mode
                }
            ]
        }
        getDirections(data)
    }

来源: https://www.npmjs.com/package/react-native-google-maps-directions#install