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

如何基于驾车距离绘制地图范围?替代直线距离圆,求免费方案

实现驾车30英里等时范围(替代直线距离圆)

R语言方案(基于免费开源OSRM服务)

用osrm包调用OSRM路由服务生成驾车等时多边形,再结合leaflet完成可视化:

  1. 安装依赖包并加载:
install.packages(c("osrm", "leaflet", "sf"))
library(osrm)
library(leaflet)
library(sf)
  1. 定义起点并生成30英里等时多边形(30英里≈48280米,OSRM默认单位为米):
# 构建起点的空间对象
start_point <- st_sfc(st_point(c(-95.33663, 29.99067)), crs = 4326)
start_sf <- st_sf(name = "George Bush International Airport", geometry = start_point)

# 生成驾车等时多边形
isochrone_poly <- osrmIsochrone(
  loc = start_point,
  max_dist = 48280,
  profile = "car",
  breaks = c(0, 48280)
)
  1. 绘制地图:
leaflet(height = 1000, width = 1000) %>%
  addTiles() %>%
  # 添加等时多边形
  addPolygons(
    data = isochrone_poly,
    fillColor = "rgba(0,0,255,0.2)",
    color = "#00008B",
    weight = 2
  ) %>%
  # 添加起点标记
  addMarkers(
    data = start_sf,
    lng = ~st_coordinates(geometry)[,1],
    lat = ~st_coordinates(geometry)[,2],
    popup = ~name
  ) %>%
  leaflet.extras::addSearchOSM(options = searchOptions(collapsed = FALSE))

注:若公共OSRM服务访问不稳定,可自行基于OpenStreetMap数据搭建本地OSRM服务。

免费桌面工具方案(QGIS)

QGIS是开源免费的桌面GIS软件,操作步骤如下:

  • 下载安装QGIS后,打开顶部菜单栏的Processing > Toolbox
  • 在工具箱中搜索OSRM > Generate Isochrones工具并打开
  • 输入起点坐标:经度-95.33663,纬度29.99067
  • 设置参数:Profile选择Car,Maximum distance设为48280(单位米),指定输出文件保存路径
  • 点击Run生成等时多边形,将其添加到地图窗口后,可自定义填充色、透明度等样式
  • 如需添加底图,通过Layer > Add Layer > Add XYZ Tile Layer添加OpenStreetMap等免费底图即可

内容的提问来源于stack exchange,提问作者Jacob Nordstrom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:27:22