#reactjs #google-maps #google-map-react
Вопрос:
Я использую react-google-maps
и я могу отображать местоположение на основе lan
и lat
, но я не могу найти способ отображения местоположения с помощью общей ссылки, например https://goo.gl/maps/YBuwmbwH21yUE19Z9
Я хочу отобразить эту ссылку на карте Google
Вот мой код:
withGoogleMap(props => (
<GoogleMap
defaultZoom={17}
defaultCenter={{ lat: props.lat, lng: props.lng }}
>
{props.isMarkerShown amp;amp; (
<Marker
clickable={true}
title={'asdasdads'}
position={{ lat: props.lat, lng: props.lng }}
/>
)}
</GoogleMap>
)),
);
const Location = ({ URL }) => {
var splitUrl = URL.split('!3d');
var latLong = splitUrl[splitUrl.length - 1].split('!4d');
var longitude;
if (latLong.indexOf('?') !== -1) {
longitude = latLong[1].split('\?')[0];
} else {
longitude = latLong[1];
}
var latitude = latLong[0];
return (
<div
className={`box-dashboard d-flex justify-content-center align-items-center bg-white mb-4`}
>
<MyMapComponent
lat={parseFloat(latitude)}
lng={parseFloat(longitude)}
isMarkerShown
googleMapURL={`https://maps.googleapis.com/maps/api/js?v=3.expamp;libraries=geometry,drawing,placesamp;key=${YOUR_GOOGLE_API_KEY}`}
loadingElement={<div style={{ height: `100%` }} />}
containerElement={<div style={{ height: `300px`, width: '100%' }} />}
mapElement={<div style={{ height: `100%` }} />}
/>
</div>
);
};
Пожалуйста, помогите мне, спасибо вам
Ответ №1:
Пожалуйста, обратите внимание, что react-google-maps
это библиотека, созданная для Maps JavaScript API, которая является продуктом платформы Google Maps. Платформа Google Maps отличается от приложения Google Maps.
Если вы хотите предоставить ссылку, которая будет запущена в приложение Google Maps, используя код, указанный в вашем коде, вы можете попробовать проверить URL-адреса карт, где вы можете создать такую ссылку https://www.google.com/maps/search/?api=1amp;query=YOURLAT,YOURLNG
, которая является URL-адресом, который запустит координаты в приложении Google Maps.
Вот пример кода и фрагмент кода, который создает ссылку Google Maps для координат, которые вы нажимаете в любой точке карты:
import React, { Component } from "react";
import { withGoogleMap, GoogleMap } from "react-google-maps";
class Map extends Component {
constructor(props) {
super(props);
this.state = {
center: { lat: 24.886, lng: -70.268 },
link: ""
};
}
onMapClick = e => {
console.log(e.latLng.lat());
this.setState({
link:
"https://www.google.com/maps/search/?api=1amp;query="
e.latLng.lat()
","
e.latLng.lng()
});
};
render() {
const GoogleMapExample = withGoogleMap(props => (
<GoogleMap
defaultCenter={this.state.center}
defaultZoom={3}
onClick={this.onMapClick}
/>
));
return (
<div>
<p>Click the map to get link of coordinate</p>
{this.state.link !== "" amp;amp; (
<a href={this.state.link}>{this.state.link}</a>
)}
<GoogleMapExample
containerElement={<div style={{ height: `500px`, width: "500px" }} />}
mapElement={<div style={{ height: `100%` }} />}
/>
</div>
);
}
}
export default Map;