Подтвердить что ты не робот

Вызовите API API проезда? реагировать родной

Во многих приложениях для iOS я могу увидеть кнопку, говорящую о getDirections, которая после щелчка откроет карты Apple/Google с широтой и долготой, переданными в качестве адресата.

У меня есть кнопка TouchableHighlight с латами и lng. Какую конечную точку API мне нужно вызвать в обратном вызове onPress, чтобы открыть карты Apple с моими координатами в качестве назначения маршрута?

4b9b3361

Ответ 1

Для связи с другим приложением, таким как Карты, используйте 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

Ответ 2

Чтобы перейти к другому приложению и открыть маршрут в качестве Карты, используйте эту функцию:

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);
        }
    })();
}

Ответ 3

Вы можете использовать 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.