You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:48:01