首页 > 解决方案 > 如何在 r 中的 mapview 地图上标记点

问题描述

请帮我在地图视图上标记点。我可以绘制点确定。然后我想将这些点标记为“A 点”、“B 点”。我也更喜欢在没有点标记的情况下执行此操作,即我将只使用坐标来定位标签。

library(sf)
library(mapview)
library(tidyverse)

points <- tribble(~name, ~lat, ~lon,
                     'Point A',     -38.119151, 145.401893,
                     'Point B',     -38.127870, 145.685598)

points_sf <- st_as_sf(points, coords = c("lon", "lat"), crs = 4326)

mapview(points_sf)

标签: rr-mapview

解决方案


这由 支持leaflet,这mapview取决于 - 但 mapview 在顶部添加了其他行为。

这是最接近的等价物mapview以及如何完全按照 base 中的要求进行操作leaflet

注意: mapview::addStaticLabelsleaflet::addLabelOnlyMarkers.

library(sf)
library(mapview)
library(leaflet)
library(tidyverse)

points <- tribble(~name, ~lat, ~lon,
                  'Point A',     -38.119151, 145.401893,
                  'Point B',     -38.127870, 145.685598)

points_sf <- st_as_sf(points, coords = c("lon", "lat"), crs = 4326)

leaflet(points_sf) %>%
  addTiles() %>%
  addLabelOnlyMarkers(label =  ~name, 
                      labelOptions = labelOptions(noHide = T,
                                                  direction = 'top',
                                                  textOnly = T))

在此处输入图像描述

mapview(points_sf) %>%
  addStaticLabels(label = points$name,
                  noHide = TRUE,
                  direction = 'top',
                  textOnly = TRUE,
                  textsize = "20px")

在此处输入图像描述


推荐阅读