【发布时间】:2019-08-22 23:01:30
【问题描述】:
我用的是React Map GL,想把用户的经纬度放上去
像这样返回组件:
export default geolocated({
positionOptions: {
enableHighAccuracy: false
},
userDecisionTimeout: 5000
})(Layout);
我尝试使用 react-geolocated 但它返回空坐标。
我想在组件挂载时获取这些信息,就是代码:
componentDidMount() {
console.log(this.props);
if (navigator.geolocation) {
const viewport = {
...this.state.viewport,
latitude: this.props.coords.latitude,
longitude: this.props.coords.longitude
};
this.setState({ viewport });
}
}
地图组件:
<MapGL
{...viewport}
//onClick={this.handleMapClick}
mapStyle="mapbox://styles/mapbox/streets-v9"
mapboxApiAccessToken={TOKEN}
perspectiveEnabled
onViewportChange={viewport => this.setState({ viewport })}
>
<div className="geo" style={geolocateStyle}>
{" "}
<GeolocateControl
positionOptions={{ enableHighAccuracy: true }}
trackUserLocation={true}
/>
</div>
<div className="nav" style={navStyle}>
<NavigationControl
onViewportChange={viewport => this.setState({ viewport })}
/>
</div>
</MapGL>
我得到这样的道具:
{coords: null, isGeolocationAvailable: true, isGeolocationEnabled: true, positionError: null}
【问题讨论】:
-
可以继续前进吗?
标签: reactjs geolocation react-map-gl