reactjs - 如何使用地理定位追踪路线?
问题描述
我需要实现一个跟踪器,它可以获取用户的位置并在地图上实时绘制跟踪的路线,类似于strava或 runtastic 等跟踪应用程序。
在反应中,我编写了一个Tracker 组件,它使用navigator.geolocation.watchPosition
并将位置推送到数组并将其保存到状态。在渲染方法中,我将此数组作为道具传递给Map 组件。
<Map coords={ this.state.coords } />
在那里,我尝试使用传递下来的道具通过添加geojson 行来显示路线,如本例所示。它看起来像这样:
componentDidMount() {
// ...
this.map.on("load", this.addPolyline);
}
addPolyline() {
this.map.addSource('route', {
"type": "geojson",
"data": {
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": this.props.coords
}
}
});
this.map.addLayer({
'id': 'route',
'type': 'line',
'source': 'route',
'layout': {
'line-join': 'round',
'line-cap': 'round'
},
'paint': {
'line-color': 'red',
'line-width': 5
}
});
}
...但不显示跟踪的路线。关于我做错了什么或如何实现这一点的任何建议?
解决方案
推荐阅读
- python - 我们什么时候在程序中添加错误处理代码?
- linux - Linux 按字母顺序对单词进行排序并为每个字母创建一个文件
- javascript - 合并 onsubmit 脚本
- python - Flask:使用 GET 请求下载 .zip 文件
- uwp - 将 ItemsSource 更新到 ItemsControl 时,SelectedItem 选择丢失
- android - 如何按行查询房间数据库android kotlin
- android - 当我使用自定义布局而不是通货膨胀时,DialogFragment 什么也不显示
- gcp-load-balancer - 将多个通配符 TLS 证书与单个 GCE 负载均衡器一起使用
- linux - Rust 非交互式标准输入读取
- javascript - 减少 node_modules 后 node_modules 出错