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

R语言sf/tmap地图地名优化:解决重叠与按需显示问题

解决tmap地图地名重叠的优化方案

方案1:仅在指定缩放级别以上显示地名

通过设置缩放阈值,让城镇名称仅在地图放大到一定程度时才显示,避免全视图下的重叠问题。

修改后的代码:

sf_points_ptr = st_as_sf(fig2_map_df, coords = c(x = "Easting", y = "Northing"), crs = 7405)

tmap_mode('view')

tm_shape(sf_points_ptr) +
  tm_dots(col = "blue") +
  tm_text("JBO", 
          size = 0.8,
          # 仅当缩放级别大于10时显示名称,可根据实际情况调整数值
          viewport.max = 10)

注:viewport.max的数值对应地图缩放级别,数值越小意味着需要放大更多才会触发名称显示,可根据你的点位分布灵活调整。

方案2:点击点位时弹窗显示城镇名称

利用tmap交互视图的弹窗功能,全图仅显示蓝色点位,点击点位才弹出对应城镇名称,彻底避免重叠。

代码示例:

sf_points_ptr = st_as_sf(fig2_map_df, coords = c(x = "Easting", y = "Northing"), crs = 7405)

tmap_mode('view')

tm_shape(sf_points_ptr) +
  tm_dots(col = "blue") +
  # 点击点位时弹出城镇名称
  tm_popup("JBO", title = "城镇名称")

方案3:两种方式结合(兼顾缩放显示与点击弹窗)

如果需要同时支持缩放显示名称和点击弹窗查看,可同时配置两个功能:

sf_points_ptr = st_as_sf(fig2_map_df, coords = c(x = "Easting", y = "Northing"), crs = 7405)

tmap_mode('view')

tm_shape(sf_points_ptr) +
  tm_dots(col = "blue") +
  tm_text("JBO", size = 0.8, viewport.max = 10) +
  tm_popup("JBO", title = "城镇名称")

内容的提问来源于stack exchange,提问作者Andy M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:07:26