Я использую пример в библиотекеact-google-maps.
const { compose, withProps, lifecycle } = require("recompose");
const {
withScriptjs,
withGoogleMap,
GoogleMap,
DirectionsRenderer,
} = require("react-google-maps");
const MapWithADirectionsRenderer = compose(
withProps({
googleMapURL: "https://maps.googleapis.com/maps/api/js?key=AIzaSyC4R6AN7SmujjPUIGKdyao2Kqitzr1kiRg&v=3.exp&libraries=geometry,drawing,places",
loadingElement: <div style={{ height: `100%` }} />,
containerElement: <div style={{ height: `400px` }} />,
mapElement: <div style={{ height: `100%` }} />,
}),
withScriptjs,
withGoogleMap,
lifecycle({
componentDidMount() {
const DirectionsService = new google.maps.DirectionsService();
DirectionsService.route({
origin: new google.maps.LatLng(41.8507300, -87.6512600),
destination: new google.maps.LatLng(41.8525800, -87.6514100),
travelMode: google.maps.TravelMode.DRIVING,
}, (result, status) => {
if (status === google.maps.DirectionsStatus.OK) {
this.setState({
directions: result,
});
} else {
console.error(`error fetching directions ${result}`);
}
});
}
})
)(props =>
<GoogleMap
defaultZoom={7}
defaultCenter={new google.maps.LatLng(41.8507300, -87.6512600)}
>
{props.directions && <DirectionsRenderer directions={props.directions} />}
</GoogleMap>
);
<MapWithADirectionsRenderer />
Я хочу включить альтернативные маршруты на своей карте.Поэтому я использовал
provideRouteAlternatives: true
, поэтому внутри функции обратного вызова
(result, status) => { }
у результата есть свойство route, которое является массивом альтернативных маршрутов.Как я могу сделать эти маршруты на карте?.. Я также хочу нажимать на маршруты, и они будут менять цвет с активного на неактивный.Когда пользователь выбирает маршрут, мне нужно отправить на сервер свойство, называемое
overview_polyline
, которое находится внутри массива маршрутов, где каждый маршрут внутри массива имеет это свойство.Большое спасибо.