首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在现有的shapefile map ggplot r中组合osm数据(使用osmdata包下载)

在现有的shapefile map ggplot r中组合osm数据,可以使用osmdata包来下载和处理OpenStreetMap(OSM)数据,并使用ggplot2包来绘制shapefile和OSM数据的组合图。

首先,需要安装并加载所需的R包,包括ggplot2、sf、osmdata和rgeos:

代码语言:txt
复制
install.packages("ggplot2")
install.packages("sf")
install.packages("osmdata")
install.packages("rgeos")

library(ggplot2)
library(sf)
library(osmdata)
library(rgeos)

接下来,使用osmdata包下载所需的OSM数据。可以通过指定一个区域的边界框坐标来下载数据。例如,以下代码将下载包含纽约市的OSM数据:

代码语言:txt
复制
bbox <- c(left = -74.05, bottom = 40.68, right = -73.85, top = 40.88)
osm <- osmdata::getbb(bbox, format_out = "sf")

然后,加载shapefile数据并将其转换为sf对象:

代码语言:txt
复制
shapefile <- st_read("path/to/shapefile.shp")

接下来,可以使用ggplot2来绘制shapefile和OSM数据的组合图。首先,使用ggplot函数创建一个空白的绘图对象,并使用geom_sf函数绘制shapefile数据:

代码语言:txt
复制
plot <- ggplot() +
  geom_sf(data = shapefile)

然后,使用geom_sf函数再次绘制OSM数据,并使用不同的颜色和透明度来区分两个数据集:

代码语言:txt
复制
plot <- plot +
  geom_sf(data = osm$osm_points, color = "blue", alpha = 0.5) +
  geom_sf(data = osm$osm_lines, color = "red", alpha = 0.5) +
  geom_sf(data = osm$osm_polygons, fill = "green", alpha = 0.5)

最后,使用其他ggplot2函数来添加标题、坐标轴标签等,以及调整图形的样式和布局:

代码语言:txt
复制
plot <- plot +
  labs(title = "Combining Shapefile and OSM Data",
       x = "Longitude", y = "Latitude") +
  theme_bw()

完成后,可以使用print函数打印并显示绘图对象:

代码语言:txt
复制
print(plot)

这样就可以在现有的shapefile map ggplot r中组合osm数据了。

在这个例子中,shapefile表示地理空间数据,而OSM数据表示OpenStreetMap中的点、线和多边形要素。通过组合这两个数据集,可以在同一个图形中显示shapefile和OSM数据,从而实现更丰富的地图可视化效果。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云地理信息服务:https://cloud.tencent.com/product/gis
  • 腾讯云数据万象(用于图像处理):https://cloud.tencent.com/product/ci
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用Python编写小工具下载OSM路网数据

,经常会需要某个地区的道路网络及节点数据,而OpenStreetMap就是一个很好的数据来源(譬如图1柏林路网): 图1 通常我们可以openstreetmap[2]中选择矩形区域内的路网矢量数据进行下载...譬如在geofabrik[3] 中提供了各大洲、国家等大范围的数据整合,可以花费一定时间将其下载下来,再在需要哪些小区域时本地GIS软件或编程工具裁剪下所需的范围路网。...但这种方式一是对电脑资源要求较高,譬如中国范围路网信息shapefile文件大小达到了800多兆,二是OSM的路网信息不定期更新之后,要想及时跟上最新数据,就需要人工持续下载数据。...为了更加灵活自由,且即时地获取最新版本的OSM路网,我们可以利用Python来编写脚本工具,方便快捷地检索或下载OSM可以识别出的各个级别行政区对应的矢量格式数据。...具体的代码部分本文不做详细说明,我将这部分功能封装到文章开头对应Github仓库下的OsmDownloader.py[5],可以自行去下载使用。 下面我们来学习如何在Python中使用它。

1.5K20

数据科学学习手札80)用Python编写小工具下载OSM路网数据

通常我们可以 https://www.openstreetmap.org/export 中选择矩形区域内的路网矢量数据进行下载,但这种方式对选择区域的大小有一定限制,想获取较大范围区域的路网数据下载比较费事...;而另一种方式是事先下载已经整合好的大区域的文件,譬如在 http://download.geofabrik.de/ 中提供了各大洲、国家等大范围的数据整合,可以花费一定时间将其下载下来,再在需要哪些小区域时本地...GIS软件或编程工具裁剪下所需的范围路网,但这种方式一是对电脑资源要求较高,譬如中国范围路网信息shapefile文件大小达到了800多兆,二是OSM的路网信息不定期更新之后,要想及时跟上最新数据,就需要人工持续下载数据...)用Python编写小工具下载OSM路网数据/OsmDownloader.py ),可以自行去下载使用,下面我们来学习如何在Python中使用它。...import sys sys.path.append(r'所在路径') from OsmDownloader import OsmDownloader   这样才能成功导入没有Python中注册过的独立模块

1.6K10

Kaggle | 使用Python和R绘制数据地图的十七个经典案例(附资源)

注:Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式 R 地图 对于R用户,Kaggler Umesh显示,你需要的是ggplot2和Hadley Wickham的地图...数据下载链接:http://docs.ggplot2.org/current/map_data.html 然后,创建地图本身就像创建任何其他ggplot可视化一样熟悉。...这里,还有一些更好的资源用于使用地图、mapsdata和ggplot2: R绘制地图 http://eriqande.github.io/rep-res-web/lectures/making-maps-with-R.html...使用ggplot2软件包在R绘制地图 http://zevross.com/blog/2014/07/16/mapping-in-r-using-the-ggplot2-package/ 请注意,你目前无法在内核中使用...examples/geojson/ 我的印象里,高分辨率R是一个新的

5K51

R语言可视化——关于ggplot所支持的数据地图素材类型

虽然从数据存储格式上来讲我们分为shp素材、json素材,但是由于R语言中使用ggplot2作图,所支持的数据集对象大致又可分为两类,它们都可以由shp、json数据文件转化而来。...然后如果是第一种sp格式的话,制作ggplot2地图过程,我们需要分离描述层和几何映射层,并为两者指定连接的id(主键),如果算上你要将自己的业务数据和描述层数据合并这一动作的话,那么总共我们需要合并两次数据...接下来通过案例演示来解释以上原理: 通常我们制作一个数据地图的方式如下: shapefile文件导入: setwd("D:/R/rstudy/CHN_adm") china_map<-readShapePoly...("CHN_adm1.shp") Warning message: use rgdal::readOGR or sf::st_read 当我使用sp导入shp数据集时,R提示以上warning,也就意味着这种传统的方式不久的将来就会被遗弃...R语言中可以制作数据地图的有很多(我长用到的): #需要自己准备数据地图素材: map() ggplot(china_map1)+geom_line() #只能做轮廓图 ggplot(china_map1

2.2K41

动态地理信息可视化——leaflet填充地图

这一篇是leaflet动态地图的第四篇,也是最值得推荐的一篇,这一篇涉及到热力地图填充,通过该篇内容,大家可以体会大leaflet在线地图的R借口处理热力地图上面颜色标度映射的强大优势。...我们常用的地图素材资源无非以下三种,R内置的地图数据shapefile格式和json格式。...以下是三种格式素材导入并在leaflet制作的地图的基本代码: maps: mapStates<-map("state",fill=TRUE,plot=FALSE) leaflet(mapStates...前两种素材作图过程大同小异,特别是一些标度的属性声明很类似ggplot的函数过程,但是json格式的素材操作起来就不是很友好,他的标度属性是要在数据文件中新建style的list对象进行生命,而且json...以上地图效果都支持多节自动缩放和弹窗动态信息显示(需设置popup属性及少量html交互代码) leaflet在线地图底层由js源码编写,天然支持html语言,如能结合html搭配使用,可以动态地图元素

4.8K40

一款具备SAM大模型AI分割,功能强大的地理数据生产编辑查看工具 Geobuilding

可导出geojson shapefile osm svg格式· 它能绘制细节丰富的失量建筑物轮廓,并支持高度· 它能一键生成建筑分层分户矢量数据· 它能绘制无缝地理网格,支持层级数据· 它能绘制各种点/...、OSM格式· 它能导出丰富的建筑物数据· 它的用户主要来自政府、企业、高校、设计院等机构,数据完全本地化· 它同样可作为GIS数据标注来使用出色的傻瓜化的轮廓绘制能力,绘制精美的轮廓自由绘制、矩形绘制...属性值可以自动设置要素填充色支持自定义属性字段映射,完美对接第三方业务系统丰富的GIS数据导出可导出为geojson shapefile osm svg格式OSM格式 快速贴图转城市模型osm转城市模型支持更大数据量维护大数据量的加载...编辑 删除上海市60w+建筑物按轮廓裁剪支持GIS场景下三维漫游设计生产的GIS数据有更多的玩法,你可以软件自定义漫游路线,漫游镜头设计。...更多Geobuilding使用geobuilding投稿视频-geobuilding视频分享-哔哩哔哩视频Geobuilding下载地址https://pan.baidu.com/s/1h5zHbDSE9tuCqbRXi30LzA

31010

【学习】R笔记1:ggplot绘制商务图表--中国分省热力地图

/ 0、引子 R里有个绘制地图的maps,加载后即可绘制地图,试一下以下命令: library(maps) map()...你可到微信公众号 iamExcelPro 发送 shapefile 获得下载地址,我是雷锋。解压到 c:/rstudy 目录,有3个文件,都是需要的。...加载ggplot2,用ggplot绘制,并使用polyconic投影方式,显示正常。...2、准备业务数据 网上教程居然都是命令行里输入数据,也很坑爹。我们还是从Excel表格转存来得方便。 按以下格式准备好指标数据,并存为csv格式文件。...所以结论就是,一般非专业用户还是使用BingMap、PowerMap、Tableau或者《用地图说话》的Excel模板,直接填数据出地图吧,其中Excel模板方式是最简单、便携,office协同性最好的

3.4K70

构建自己的地理信息空间数据库及与客户端简单交互

,此时使用postgresql安装环境自带的pgAdmin4 工具打开postgresql数据库,并可以新建一个引用空间数据表模板的测试库,这一步也有一个坑,新建引用模板的测试库之后,一定要先按照官网给的步骤测试库运行以下脚本...这张表整体就是我们之前分享 R语言的sf对象和Python的GeoDataFrame对象的技术雏形。...可以看到地理信息列postgis已经被编码成一组特殊数字,而在R的sf对象则是嵌套列表,Python的GeoDataFrame则是特殊的geomtry列。...2、postgis与R语言通讯: R语言中调用postgis库表,需要依赖以下两个(RPostgreSQL\rpostgis): library("rpostgis") library("RPostgreSQL...使用geopandas中提供的postgis接口函数,导入engine连接池mytest库的bou2_4p表所有数据

6K20

R语言绘制中国地图,并展示流行病学数据

1 地图GIS数据的来源与R绘制软件 中国地图GIS数据的官方数据可以国家基础地理信息中心的网站(http://nfgis.nsdi.gov.cn)里面可以免费下载。...在这一点上,Rggplot2提供了专门的coord_map()函数。所以推荐Rggplot2来绘制地图。...为了进一步ggplot2绘图,需要把SpatialPolygonsDataFrame数据类型转化为真正的data.frame类型才可以。...把每个区域的边界保存在单独的文件。然后R把这些数据转化为GIS数据,保存为shp格式的标准地图文件。...5 小结 尽管我写作中使用了这个星球上最强大的knitr软件来保证本文的可重复性,但是随着官方新版数据未来的发布,数据的字段名称甚至组织布局将会有些变化,也会使本文代码无法直接拷贝运行

18.6K91

【完整案例】如何用R实现空间数据可视化

1 地图GIS数据的来源与R绘制软件 中国地图GIS数据的官方数据可以国家基础地理信息中心的网站(http://nfgis.nsdi.gov.cn)里面可以免费下载。...在这一点上,Rggplot2提供了专门的coord_map()函数。所以推荐Rggplot2来绘制地图。...为了进一步ggplot2绘图,需要把SpatialPolygonsDataFrame数据类型转化为真正的data.frame类型才可以。...把每个区域的边界保存在单独的文件。然后R把这些数据转化为GIS数据,保存为shp格式的标准地图文件。...5 小结 尽管我写作中使用了这个星球上最强大的knitr软件来保证本文的可重复性,但是随着官方新版数据未来的发布,数据的字段名称甚至组织布局将会有些变化,也会使本文代码无法直接拷贝运行

3.8K70

Python-Basemap核密度空间插值可视化绘制

本期推文,我们就使用功能强大但却被人抛弃的Basemap进行绘制(虽然停止维护,但其空间绘图功能却依旧不能让人忽视,再者,也有对应不同版本的whl文件下载安装),主要涉及的知识点如下: Basemap...()函数则实现了插值网格数据地图上的映射效果: cp=map_base.pcolormesh(X,Y, data=Density_re,cmap='Spectral_r') 最终的可视化效果如下...从结果我们可以看到,结果是规整的网格数据,没有根据目标区域(地图文件) 对结果进行裁剪,接下来我们将使用fiona、shapely 实现对目标区域的裁剪操作。...「接下来就是关键的一步操作」:我们根据df_grid数据的经纬度信息判断点是否构建的面(shp_ploygeon)内,不在的点我们赋值为np.nan,的点不变,这样即可完成“裁剪”操作,具体操作代码如下...下期我们使用R-ggplot+sf实现空间插值操作,敬请期待

2.1K20

用Python绘制全国各省新型冠状病毒疫情状况

其中,matplotlib,函数 FuncAnimation(fig,func,frames,init_func,interval,blit) 是绘制动图的主要函数,其参数如下: (1) fig...本书主要介绍如何使用python的matplotlib、seaborn、plotnine、geoplot等绘制专业图表。...本书先介绍了python语言编程基础知识,以及使用numpy和pandas两个数据操作方法;再对比了matplotlib、seaborn和plotnine三个的图形语法。...本书主要内容 ① R语言编程基础知识,以及使用dplyr、tidyr、reshape2等数据操作方法; base、lattice 和ggplot2的图形语法。...② 使用ggplot2及其拓展绘制类别对比型、数据关系型、时间序列型、整体局部型、地理空间型等常见的二维图表的方法,ggraph、igraph circlize等绘制层次、 网络关系型图表,以及使用

1.3K10

R使用 sf 和 ggplot2 绘制河流地图

翻译: Google翻译 作者: 米洛斯·波波维奇 原文链接: https://milospopovic.net/map-rivers-with-sf-and-ggplot2-in-r/ 今年的3...下面,我们下载名为“eu_rivers.zip”的压缩文件夹,设置进度条(如果您不喜欢详细输出,请随时省略后者),然后解压缩文件夹。最后,我们列出包含下载文件名称的所有 shapefile。...相反,使用 s2 库的球面几何运算符。我们的例子,这会破坏代码,因为某些河流线具有无效的球形几何图形。 一个快速的解决方法是通过sf::sf_use_s2(FALSE)关闭此功能。...本教程,我们将使用世界等距圆柱投影来展平地图。因此,我们首先定义此投影,然后转换坐标。 # 3....本教程,您学习了如何导入河流空间文件以及如何在 R 制作欧洲的炫酷河流地图。随时检查完整代码这里,克隆存储库并根据需要重现、重用和修改代码。

2.5K20

干货:12个案例教你用Python玩转数据可视化(建议收藏)

07 创建热图 热图使用一组颜色矩阵可视化数据。最初,热图用于表示金融资产(如股票)的价格。...我们将使用shapefile包含了国家边界、人口以及国内生产总值(Gross Domestic Product,GDP)的数据。我们可以使用cartopy库下载shapefile。...ggplot2图 ggplot2是R语言用户群很流行的数据可视化库。...ggplot2的主要思想是在数据可视化的产出包含多个图层。就像一个画家,我们从一个空的画布开始,紧接着一步步地添加图层。 通常我们使用rpy2来让Python接入R语言代码。...更换指标的名字明显会影响代码,所以我决定通过joblib库来缓存数据。但是这个方法美中不足的是不能pickle所有的Python对象。 1. 准备工作 首先你需要有安装了ggplot2的R语言环境。

3.7K40

R语言,你要怎样画地图?

以上步骤,目前最关键的是2,一旦2的数据有了,R不就是把它们连起来嘛,这个对于R来说就是调戏它,就跟全民调戏小黄鸡一样。...mapdata存有中国地图的数据,但是比较旧了,这个数据,重庆还没有从四川分出来呢。 总体来讲,第一种思路受有的数据数量限制(但我R多!)...好,我们先来按照第一种思路来画几个图: 1、 画世界地图 如果是首次使用,需要在R中装载maps(install.packages('maps')),这个存有世界地图和美国地图的地图数据...3、 画中国地图 上述的maps并没有中国地图的数据另外一个mapdata中有中国地图的数据(比较旧的数据)。...不过,您说的是农大东校区还是农大西校区啊…… 另,ggmap不仅仅可以调取Google Map数据,还可以调取OpenStreetMap (‘osm’)、Stamen Maps (‘stamen

11.6K150

Python可视化与basemap数据地图系列1

最近在梳理Python可以制作数据地图的可视化工具,分别实践了geopandas、folium、Basemp,通过对比发现,静态地图中最为成熟的最终还得是Basemap工具,它是...mpl_toolkits的一个专门用于构建地理信息数据可视化的扩展库。...Basemap工具地理信息读写、坐标映射、空间坐标转化与投影等方面做的要比geopandas更加成熟,它可以使用常规的地图素材数据源(shp)作为底图进行叠加绘图,效果与精度控制比较方便,图表质量堪比...R语言中的ggplot2绘图(geom_polygon),唯一不足的是它是一个底层构建工具,所有的多边形映射都需要手动构造循环(目前还没有发现比较好用的基于basemap的扩展工具),作图效率与速度上自然无法媲美...R语言的ggplot2(缺少一套健全的顶层语法支撑)。

1.9K50

批量将本地gis数据导入postgis数据

以前处理gis数据的时候,都是直接导入本地shp素材、本地geojson素材,本地topojson素材,自从接触postgis数据之后,深感使用规范的存储系统来统一管理gis数据的好处,特别是数据量大了之后...maptools的readShapePoly函数进行导入(已快被遗弃了,推荐使用sf和rgdal) system.time(china_map <- readShapePoly("D:/R/rstudy...@data ggplot2::fortify(china_map) geojsonio导入: system.time(geojson1 <- geojson_read( "D:/R/...当然,以上sf、rgdal和sf都是兼容性很好地,可以支持非常广泛的数据源,以下分别是json标准下的两种素材上进行测试。...如果你要想将sf导入的数据模型转换为普通的数据框模式,仅仅只需使用其提供的as(sf,’Spatial’)函数一次转化即可,当然sf有自己的ggplot2通道函数geom_sf(),这意味着你不必多此一举

2.3K10

12个案例教你用Python玩转数据可视化

七、创建热图 热图使用一组颜色矩阵可视化数据。最初,热图用于表示金融资产(如股票)的价格。...我们将使用shapefile包含了国家边界、人口以及国内生产总值(Gross Domestic Product,GDP)的数据。我们可以使用cartopy库下载shapefile。...ggplot2图 ggplot2 是 R 语言用户群很流行的数据可视化库。...ggplot2的主要思想是在数据可视化的产出包含多个图层。就像一个画家,我们从一个空的画布开始,紧接着一步步地添加图层。 通常我们使用rpy2来让Python接入R语言代码。...更换指标的名字明显会影响代码,所以我决定通过joblib库来缓存数据。但是这个方法美中不足的是不能pickle所有的Python对象。 1. 准备工作 首先你需要有安装了ggplot2的R语言环境。

2.5K30

R可视乎|空间地理数据可视化(1)

3.3 R 设置坐标参考系统 地球的形状可以用一个扁椭球形的模型来近似,它在赤道上隆起,两极扁平,目前世界上有很多不同的参考椭球体来使用,最常用的是全球定位系统(GPS)所使用的世界大地测量系统...d转换为具有不同投影的数据,则可以使用 rgdal 的 spTransform() 函数或 sf 的 st_transform() 函数。...我们可以使用 rgdal 的 readOGR() 函数,或者 sf 的 st_read() 函数来读取 shapefile 文件。...例子:用 readOGR() 读取存储 sf 的北卡罗来纳州的 shapefile,如下所示: # name of the shapefile of North Carolina of the sf...: plot(map) 由 sf 得到的美国北卡罗来纳州地图 小编有话说 本篇主要介绍:用 R 制作地图的基础内容,包括:几种空间数据类型、不同的坐标参考系统介绍以及如何使用 R 导入图形文件以及绘图

3.4K30
领券