小编inv*_*dna的帖子

R中GIS地图的自动标签放置

我正在使用sf包(和相关包)在 R 中制作 GIS 地图以读取 shapefile 和ggplot2(和朋友)进行绘图。这工作正常,但我找不到(自动/以编程方式)为河流和道路等要素创建标签放置的方法。这些特征通常是具有不规则形状的线串。请参阅例如来自维基媒体的图片。

在此处输入图片说明

该ggrepel软件包适用于以自动方式标记点,但这对于不是离散的纬度/经度点的其他地理特征没有多大意义。

我可以想象通过在每个功能上单独放置单独的文本标签来做到这一点,但如果可能的话,我正在寻找更自动化的东西。我意识到这种自动化不是一个小问题,但之前已经解决了(ArcGIS 显然有一种方法可以使用名为 Maplex 的扩展程序来做到这一点,但我无法访问该软件,我想留在R 如果可能)。

有谁知道这样做的方法?

MWE在这里:

#MWE Linestring labeling

library(tidyverse)
library(sf)
library(ggrepel)
set.seed(120)

#pick a county from the built-in North Carolina dataset
BuncombeCounty <- st_read(system.file("shapes/", package="maptools"), "sids") %>% 
  filter(NAME == "Buncombe") 

#pick 4 random points in that county
pts_sf <- data.frame(
  x = seq(-82.3, -82.7, by=-0.1) %>% 
    sample(4),
  y = seq(35.5, 35.7, by=0.05) %>% 
    sample(4),
  placenames = c("A", "B", "C", "D")
) %>% 
  st_as_sf(coords = …
Run Code Online (Sandbox Code Playgroud)

gis r spatial ggrepel r-sf

13
推荐指数
1
解决办法
429
查看次数

标签 统计

ggrepel ×1

gis ×1

r ×1

r-sf ×1

spatial ×1