我要求在加载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
包
任何想法我们如何处理这个问题?
答案 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