获取路线 API 电话?反应本机

Get Directions API call ? react-native

在许多 iOS 应用程序中,我可以看到一个按钮,上面写着 getDirections,单击它会打开一个 Apple/Google 地图,其中经纬度作为目的地传递。

我的 TouchableHighlight 按钮已准备好经纬度和纬度。我需要在 onPress 回调中调用什么 API 端点才能以我的坐标作为路线目的地打开 Apple 地图?

您可以使用 Geolocation API:

// Get position once
navigator.geolocation.getCurrentPosition(
    (initialPosition) => this.setState({initialPosition}), // success callback
    (error) => alert(error.message), // failure callback
    {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000} // options
);

// Repeatedly track position
this.watchID = navigator.geolocation.watchPosition((lastPosition) => {
  this.setState({lastPosition});
});

然后您可以使用该位置并根据需要显示它,也许是 MapView

要link到另一个应用程序,例如地图,请使用LinkingIOS:

https://facebook.github.io/react-native/docs/linkingios.html

// Replace lat and long with your own decimal latitude and longitude values
var url = 'http://maps.apple.com/?ll=<lat>,<long>';
LinkingIOS.openURL(url);

对于地图,URL 方案与标准 Obj-C 应用程序相同:

https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html

要link到另一个应用程序,并打开行程作为地图,使用此功能:

export function openDirections(latitude, longitude) {
    Platform.select({
        ios: () => {
            Linking.openURL('http://maps.apple.com/maps?daddr=' + latitude + ',' + longitude);
        },
        android: () => {
            Linking.openURL('http://maps.google.com/maps?daddr=' + latitude + ',' + longitude);
        }
    })();
}