echarts4r自定义地图添加城市散点未显示,如何解决?
解决echarts4r地理地图散点不显示的问题
你的问题出在散点坐标的传递方式错误,以及对echarts4r中e_scatter结合geo坐标系的用法理解有误。以下是修正方案:
修正后的代码
library(echarts4r) library(httr) url <- paste0("https://service.pdok.nl/cbs/gebiedsindelingen/2024/wfs/v1_0?request=GetFeature&service=WFS&typeName=gebiedsindelingen:gemeente_gegeneraliseerd&outputFormat=json&version=2.0.0&srsname=urn:ogc:def:crs:EPSG::4326") geo_data <- httr::GET(url) %>% httr::content() locations <- data.frame( name = c("Amsterdam", "Utrecht"), lon = c(4.9041, 5.1214), lat = c(52.3676, 52.0907) ) # 修正后的绘图代码 locations |> e_charts(name) |> # 使用非坐标列作为初始x轴(或直接留空e_charts()) echarts4r::e_map_register("NL", geo_data) |> e_map(map = "NL", nameProperty = "statnaam") |> e_scatter(lon, lat, name = "City", symbol_size = 10, coord_system = "geo")
关键修正点
调整
e_scatter的参数顺序:
当使用coord_system = "geo"时,e_scatter需要明确传入**经度(lon)和纬度(lat)**作为前两个参数,这样echarts4r才能将散点映射到地理坐标系上。你之前的代码仅传入了lat,导致坐标映射错误。修改
e_charts的初始绑定列:
不需要将lon绑定为笛卡尔坐标系的x轴(这会混淆地理坐标系的映射逻辑),改用非坐标列(如name)或直接调用e_charts()(不指定初始x轴),确保地理坐标系的优先级更高。增大散点尺寸(可选):
将symbol_size从5调整为10,让散点更易观察,避免因尺寸过小导致视觉上“消失”。
内容的提问来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

