如何在R生成的leaflet地图中添加Leaflet.Locate控件替代默认locate功能
我在研究leaflet-locatecontrol代码仓库,它可以为leaflet地图添加蓝色定位点,在手机端打开时会随着用户步行实时跟随,类似谷歌地图的对应功能,可通过公开演示页面查看效果。
通常我在R环境中使用Rmd编写如下代码,来实现查看自己在地图上的位置的功能:
title: "Test map" output: html_document
knitr::opts_chunk$set(echo = TRUE) library(leaflet)
旧版map.locate实现方案
我通常会制作这类地图供野外场景使用:
leaflet() %>% addTiles() %>% setView(-71.0382679, 42.3489054, zoom = 18) %>% addEasyButton(easyButton( icon="fa-crosshairs", title="Locate Me", onClick=JS("function(btn, map){ map.locate({setView: true, enableHighAccuracy: true }); }")))
该方案可以正常获取用户定位,但不会在当前位置生成标记点,更关键的是无法实现实时位置跟随,可通过公开示例页面查看效果。
尝试集成control.locate遇到的问题
我第一次尝试直接将代码中的locate替换为control.locate,但功能没有生效。
leaflet() %>% addTiles() %>% setView(-71.0382679, 42.3489054, zoom = 18) %>% addEasyButton(easyButton( icon="fa-crosshairs", title="Follow Me", onClick=JS("function(btn, map){ map.control.locate()}")))
我还在尝试其他解决方案,欢迎大家提供可行思路,完整的Rmd代码可在GitHub查询获取。
内容的提问来源于stack exchange,提问作者Derek Corcoran
相关产品推荐
相关产品推荐

