加载React-map-gl并默认将纬度和经度设置为用户location的步骤如下:
import ReactMapGL, { GeolocateControl } from 'react-map-gl';
state = {
viewport: {
latitude: 0,
longitude: 0,
zoom: 10
}
};
componentDidMount() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => {
const { latitude, longitude } = position.coords;
this.setState(prevState => ({
viewport: {
...prevState.viewport,
latitude,
longitude
}
}));
});
}
}
render() {
const { viewport } = this.state;
return (
<ReactMapGL
{...viewport}
width="100%"
height="100%"
mapboxApiAccessToken={YOUR_MAPBOX_ACCESS_TOKEN}
onViewportChange={newViewport => this.setState({ viewport: newViewport })}
>
<GeolocateControl
positionOptions={{ enableHighAccuracy: true }}
trackUserLocation={true}
/>
</ReactMapGL>
);
}
YOUR_MAPBOX_ACCESS_TOKEN
为你自己的Mapbox访问令牌。如果你还没有一个访问令牌,可以在Mapbox官网上注册并创建一个。这样,当用户访问该组件时,React-map-gl会加载地图,并自动获取用户的位置信息并将地图视图中心设置为用户的位置。
推荐的腾讯云相关产品:腾讯云地图服务(https://cloud.tencent.com/product/tianditu)
领取专属 10元无门槛券
手把手带您无忧上云