Нужно обработчику выбрать какой-нибудь маркер на картах и открыть всплывающее окно, чтобы открыть координату, после этого откройте направления между текущим местоположением и набором маркеров.
Здесь какой-то код, чтобы открыть внешний ссылка, когда выбран обработчик местоположения:
pickLocationHandler = event => {
const coords = event.nativeEvent.coordinate;
console.log('Location picker Marker', coords);
this.map.animateToRegion({
...this.state.focusedlocation,
latitude: coords.latitude,
longitude: coords.longitude,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta:
(Dimensions.get('window').width / Dimensions.get('window').height) *
0.00522,
});
this.setState(prevState => {
return {
focusedlocation: {
...prevState.focusedlocation,
latitude: coords.latitude,
longitude: coords.longitude,
},
locationChosen: true,
};
});
var scheme = Platform.OS === 'ios' ? 'maps:' : 'geo:';
var url = scheme + coords.latitude;coords.longitude;
this.openExternalApp(url);
};
openExternalApp = url => {
Linking.canOpenURL(url).then(supported => {
if (supported) {
Linking.openURL(url);
} else {
Alert.alert('ERROR', 'Unable to open: ' + url, [{ text: 'OK' }]);
}
});
};
Вот код для открытия ссылки на карты Google:
handleGetDirections = () => {
const data = {
source: {
latitude: LATITUDE, // Help me to put here my current latitude
longitude: LONGITUDE, // Help me to put here my current longitude
},
destination: {
// handle pin marker pressed in the map to get the coordinates for destination
latitude: -29.2511256,
longitude: -51.1932803,
},
params: [
{
key: "travelmode",
value: "walking" // may be "walking", "bicycling" or "transit" as well
},
{
key: "dir_action",
value: "navigate" // this instantly initializes navigation using the given travel mode
}
]
}
getDirections(data)
}
Вот зависимости:
import getDirections from 'react-native-google-maps-directions';