短视频seo获客/关键词优化seo公司
POI是“Polnt of Information”的缩写,中文可以翻译为“信息点”。是地图上任何非地理意义的有意义的点,如商店,酒吧,加油站,医院,车站等。POI,道路网,河流等是我们日常研究中经常需要使用的数据。
目前这些数据的获取都有一定的难度,有的下载需要付费,使用代码爬取又需要编写复杂的代码。有时很难成功获得我们想要的数据。
OSM地图数据是指来自OpenStreetMap(开放街道地图)项目的地理信息数据。OpenStreetMap是一个由全球志愿者共同维护的开源地图项目,OSM地图数据的特点包括开放性和可编辑性,这意味着任何人都可以贡献和改进地图数据。这些数据涵盖了道路、建筑、水系、地形等多种地理要素,具有丰富的地理信息和细节。先看看效果:
今天使用R语言调用的就是OSM的各类数据,R语言中的osmdata 包提供有关全球各种空间属性和对象的空间数据。available_features() 函数可用于获取 OSM 中已识别特征的列表。可用功能的列表可以在 OSM wiki 中找到。
## [1] "4wd_only" "abandoned"
## [3] "abutters" "access"
## [5] "addr" "addr:city"
## [7] "addr:conscriptionnumber" "addr:country"
## [9] "addr:county" "addr:district"
## [11] "addr:flats" "addr:full"
## [13] "addr:hamlet" "addr:housename"
## [15] "addr:housenumber" "addr:inclusion"
## [17] "addr:interpolation" "addr:place"
## [19] "addr:postbox" "addr:postcode"
## [21] "addr:province" "addr:state"
## [23] "addr:street" "addr:subdistrict"
## [25] "addr:suburb" "addr:unit"
## [27] "admin_level" "aeroway"
## [29] "agricultural" "alt_name"
## [31] "amenity" "area"
## [33] "atv" "backward"
## [35] "barrier" "basin"
## [37] "bdouble" "bicycle"
## [39] "bicycle_road" "biergarten"
## [41] "boat" "border_type"
## [43] "boundary" "brand"
## [45] "bridge" "building"
## [47] "building:colour" "building:fireproof"
## [49] "building:flats" "building:levels"
## [51] "building:material" "building:min_level"
## [53] "building:part" "building:soft_storey"
## [55] "bus_bay" "busway"
## [57] "capacity" "castle_type"
## [59] "change" "charge"
## [61] "clothes" "construction"
## [63] "construction#Railways" "covered"
## [65] "craft" "crossing"
## [67] "crossing:island" "cuisine"
## [69] "cutting" "cycleway"
## [71] "denomination" "destination"
## [73] "diet" "direction"
## [75] "dispensing" "disused"
## [77] "drinking_water" "drive_in"
## [79] "drive_through" "ele"
## [81] "electric_bicycle" "electrified"
## [83] "embankment" "embedded_rails"
## [85] "emergency" "end_date"
## [87] "entrance" "est_width"
## [89] "fee" "female"
## [91] "fire_object:type" "fire_operator"
## [93] "fire_rank" "foot"
## [95] "footway" "ford"
## [97] "forestry" "forward"
## [99] "frequency" "fuel"
## [101] "gauge" "golf_cart"
## [103] "goods" "hazard"
## [105] "hazmat" "healthcare"
## [107] "healthcare:counselling" "healthcare:speciality"
## [109] "height" "hgv"
## [111] "highway" "historic"
## [113] "horse" "hot_water"
## [115] "ice_road" "incline"
## [117] "industrial" "inline_skates"
## [119] "inscription" "int_name"
## [121] "internet_access" "junction"
## [123] "kerb" "landuse"
## [125] "lanes" "lanes:bus"
## [127] "lanes:psv" "layer"
## [129] "leaf_cycle" "leaf_type"
## [131] "leisure" "lhv"
## [133] "lit" "loc_name"
## [135] "location" "male"
## [137] "man_made" "max_age"
## [139] "max_level" "maxaxleload"
## [141] "maxheight" "maxlength"
## [143] "maxspeed" "maxstay"
## [145] "maxweight" "maxwidth"
## [147] "military" "min_age"
## [149] "min_level" "minspeed"
## [151] "mofa" "moped"
## [153] "motor_vehicle" "motorboat"
## [155] "motorcar" "motorcycle"
## [157] "motorroad" "mountain_pass"
## [159] "mtb:description" "mtb:scale"
## [161] "name" "name:left"
## [163] "name:right" "name_1"
## [165] "name_2" "narrow"
## [167] "nat_name" "natural"
## [169] "noexit" "non_existent_levels"
## [171] "nudism" "office"
## [173] "official_name" "old_name"
## [175] "oneway" "opening_hours"
## [177] "opening_hours:drive_through" "operator"
## [179] "orientation" "oven"
## [181] "overtaking" "parking"
## [183] "parking:condition" "parking:lane"
## [185] "passing_places" "place"
## [187] "power" "power_supply"
## [189] "priority" "priority_road"
## [191] "produce" "proposed"
## [193] "protected_area" "psv"
## [195] "public_transport" "railway"
## [197] "railway:preserved" "railway:track_ref"
## [199] "recycling_type" "ref"
## [201] "reg_name" "religion"
## [203] "rental" "residential"
## [205] "roadtrain" "route"
## [207] "sac_scale" "sauna"
## [209] "service" "service_times"
## [211] "shelter_type" "shop"
## [213] "short_name" "shower"
## [215] "sidewalk" "site"
## [217] "ski" "smoothness"
## [219] "social_facility" "sorting_name"
## [221] "speed_pedelec" "start_date"
## [223] "step_count" "substation"
## [225] "surface" "tactile_paving"
## [227] "tank" "tidal"
## [229] "toilets" "toilets:wheelchair"
## [231] "toll" "topless"
## [233] "tourism" "tracks"
## [235] "tracktype" "traffic_calming"
## [237] "traffic_sign" "trail_visibility"
## [239] "trailblazed" "trailblazed:visibility"
## [241] "tunnel" "turn"
## [243] "type" "unisex"
## [245] "usage" "vehicle"
## [247] "vending" "voltage"
## [249] "water" "wheelchair"
## [251] "wholesale" "width"
## [253] "winter_road" "wood"
这些就是你可以调用的OSM数据种类
我们今天想使用的是某地区的医院,道路,河流等数据,它们分别属于"amenity","highway","waterway"。
下面我们开始具体代码:
#导入OSMdata和处理矢量数据的包
library(osmdata)
library(sf)
下一步就是创建 osmdata 查询,第一步是定义我们想要包含在查询中的地理区域,这通常是一个城市,osmdata提供了查询函数,十分方便。
nc_bb <- getbb("nanchang")
nc_bb
#这会返回南昌市的边界范围
## min max
## x 115.43870 116.56548
## y 28.15784 29.1223
确认没问题,我们就可以直接查询南昌市境内的所有医院:
nc_hospitals <- nc_bb %>%opq() %>%add_osm_feature(key = "amenity", value = "hospital") %>%osmdata_sf()
然后我们就获得了南昌市医院的数据:nc_hospitals,当然上面的代码由于一些不能科学上网或者服务限制的原因,不出问题的话肯定会出问题。所以下面贴出改进后的代码:
原理一样只是写法变化了,我们直接使用我们本地的南昌市数据
library(osmdata)
library(sf)
zh = st_read("E:/Arcgis 地图资源/市县/市县/南昌市.shp")
bb = st_bbox(zh)
bbnanc_hosiptal <- opq (bbox = c (115.43870,28.15784,116.56548,29.12239 )) %>% # add_osm_feature(key = "amenity", value = "hospital") %>%osmdata_sf ()
我们可以开心的可视化了:osm 数据支持“点”,“线”,“”面多种的数据类型,像医院我们就可以有面数据和点数据。我这里的demo将只展示面的,如果你想要南昌市医院的点数据,可以把“nanc_hosiptal$osm_polygons”改成“nanc_hosiptal$osm_point”
# install.packages("leaflet")
library(leaflet)leaflet() %>%addTiles() %>%addPolygons(data = nanc_hosiptal$osm_polygons,label = nanc_hosiptal$osm_polygons$name)
我们就可以得到:
最后,如果你想要在arcgis,或者QGIS中使用,可以将数据转化成shp格式或者GeoPackage,ESRI Shapefile只支持255列,列名限制为10个字符,文件大小限制为10G,所以这里转成shp保存下来必须要根据这些要求进行处理。因此这里最推荐使用GeoPackage,它是一个轻量级的空间数据库容器,没有奇奇怪怪的限制。它只需要一句话:
nch = nanc_hosiptal$osm_polygons
st_write(nch, "G:/R/nanc_hospital.gpkg")
我们可以打开QGIS看看,如下图,没有任何问题。通过这个方法实际上我们可以获取很多有意思的数据,上面提到的数据我们都可以通过这个方法下载。在这里不得不感叹OSM的强大。
今天就到这里结束了,小编也是摸索了很久才给大家带来这篇推文的,如果大家觉得有用希望点赞转发支持一下,我是加拿大一枝黄花,我们下期再见。
相关文章:

使用R语言优雅的获取任意区域的POI,道路,河流等数据
POI是“Polnt of Information”的缩写,中文可以翻译为“信息点”。是地图上任何非地理意义的有意义的点,如商店,酒吧,加油站,医院,车站等。POI,道路网,河流等是我们日常研究中经常需…...

【设计模式】工厂方法模式 在java中的应用
文章目录 1. 引言工厂方法模式的定义 2. 工厂方法模式的核心概念工厂方法模式的目的和原理与其他创建型模式的比较(如简单工厂和抽象工厂) 3. Java中工厂方法模式的实现基本的工厂方法模式结构示例代码:创建不同类型的日志记录器 4. 工厂方法…...

Pytest框架学习20--conftest.py
conftest.py作用 正常情况下,如果多个py文件之间需要共享数据,如一个变量,或者调用一个方法 需要先在一个新文件中编写函数等,然后在使用的文件中导入,然后使用 pytest中定义个conftest.py来实现数据,参…...

【面试开放题】挫折、问题、擅长、应用技能
1. 项目中遇到的最大挫折是什么?你是如何应对的? 解答思路: 这个问题通常考察你的问题解决能力、抗压能力和团队协作精神。回答时,可以从以下几个角度展开: 问题背景: 描述项目中遇到的具体挑战。是技术难…...

CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(没思路了)
通过网盘分享的文件:如果能重来.zip 链接: https://pan.baidu.com/s/1XKIJx32nWVcSpKiWFQGpYA?pwd1111 提取码: 1111 --来自百度网盘超级会员v2的分享漏洞分析 格式化字符串漏洞,在printf(format); __int64 sub_13D7() {char format[56]; // [rsp10h] [rbp-40h]…...

C++学习日记---第16天
笔记复习 1.C对象模型 在C中,类内的成员变量和成员函数分开存储 我们知道,C中的成员变量和成员函数均可分为两种,一种是普通的,一种是静态的,对于静态成员变量和静态成员函数,我们知道他们不属于类的对象…...

SOA、分布式、微服务之间的关系和区别?
在当今的软件开发领域,SOA(面向服务架构)、分布式系统和微服务是三个重要的概念。它们各自有着独特的特性和应用场景,同时也存在着密切的关系。以下是关于这三者之间关系和区别的详细分析: 关系 分布式架构的范畴&…...

java基础概念46-数据结构1
一、引入 List集合的三种实现类使用了不同的数据结构! 二、数据结构的定义 三、常见的数据结构 3-1、栈 特点:先进后出,后进先出。 java内存容器: 3-2、队列 特点:先进先出、后进后出。 栈VS队列-小结 3-3、数组 3-…...

Node.js-Mongodb数据库
MongoDB MongoDB是什么? MongoDB是一个基于分布式文件存储的数据库 数据库是什么? 数据库(DataBase)是按照数据结构来组织、存储和管理数据的应用程序(软件) 数据库作用? 对数据进行增、删…...

STM32 ADC --- 知识点总结
STM32 ADC — 知识点总结 文章目录 STM32 ADC --- 知识点总结cubeMX中配置注解单次转换模式、连续转换模式、扫描模式单通道采样的情况单次转换模式:连续转换模式: 多通道采样的情况禁止扫描模式(单次转换模式或连续转换模式)单次…...

技术创新与人才培养并重 软通动力子公司鸿湖万联亮相OpenHarmony人才生态大会
11月27日,由开放原子开源基金会指导,OpenHarmony项目群工作委员会主办的OpenHarmony人才生态大会2024在武汉隆重举办。软通动力子公司鸿湖万联作为OpenHarmony项目群A类捐赠人应邀出席。大会期间,鸿湖万联不仅深度参与了OpenHarmony人才生态年…...

兔子繁衍问题
7-2 兔子繁衍问题 分数 15 全屏浏览 切换布局 作者 徐镜春 单位 浙江大学 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔…...

汉代风云人物 1晁错
晁错曾是汉景帝的老师。汉景帝登基后,晁错提出削藩建议,这一举措遭到诸多藩国诸侯的强烈反对,由此引发了紧张局势。 袁盎此前曾担任吴国的宰相,晁错觉得袁盎与吴国等藩国关系密切,很可能知晓藩王们谋反的相关情况却没…...

学习threejs,使用specularMap设置高光贴图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshPhongMaterial高…...
【UE5 C++】判断两点连线是否穿过球体
目录 前言 方法一 原理 代码 测试 结果 方法二 原理 一、检查连线与球体的相交情况 二、检查距离与球体半径的关系 三、检查连线与球体的相交 代码 前言 通过数学原理判断空间中任意两点的连线是否穿过球体,再通过射线检测检验算法的正确性。 方法一 …...

【Blender】如何创建空心管道
步骤 1:创建一个圆柱体 添加圆柱体: 在 Object Mode 下按 Shift A > Mesh > Cylinder。 步骤 2:制作空心效果 进入编辑模式: 选中圆柱体,按 Tab 进入 Edit Mode。 删除顶部和底部面: 按 3 进入面选…...

ChromeBook11 HP G7EE 刷入Ubuntu的记录
设置开发模式-> 拆电池(解锁)-> 刷入bios ->使用u盘刷入系统。 下面是详细过程,除了拆机有点紧,没有难度(我不负责~ 其实我试了好几次其他系统的,先进了pe,pe没问题(音频x),有一个win10的u盘(几个…...

16asm - 汇编介绍 和 debug使用
文章目录 前言硬件运行机制微机系统硬件组成计算机系统组成8086cpu组织架构dosbox安装配置debug debug使用R命令D命令E命令U命令T命令A命令标志寄存器 总结 前言 各位师傅大家好,我是qmx_07,今天给大家讲解 十六位汇编 和 debug调试器的使用 硬件运行…...

初识QT第一天
思维导图 利用Qt尝试做出原神登陆界面 import sys from PyQt6.QtGui import QIcon, QPixmap, QMovie from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit# 封装原神窗口类 class Genshin(QWidget):# 构造函数def __init__(self):# 初始化父类…...

ChatGPT科研应用、论文写作、课题申报、数据分析与AI绘图
随着人工智能技术的飞速发展,ChatGPT等先进语言模型正深刻改变着科研工作的面貌。从科研灵感的激发、论文的高效撰写,到课题的成功申报,乃至复杂数据的深度分析与可视化呈现,AI技术均展现出前所未有的潜力。其实众多科研前沿工作者…...

原子类、AtomicLong、AtomicReference、AtomicIntegerFieldUpdater、LongAdder
原子类 JDK提供的原子类,即Atomic*类有很多,大体可做如下分类: 形式类别举例Atomic*基本类型原子类AtomicInteger、AtomicLong、AtomicBooleanAtomic*Array数组类型原子类AtomicIntegerArray、AtomicLongArray、AtomicReferenceArrayAtomic…...

c语言——数组名该如何理解呢?
一般情况下,数组名表示首元素地址,以下2种除外: ①、sizeof(数组名) 表示整个数组 ※只有数组名的情况 sizeof(数组名i) 就不能表示整个数组 ②、&数组名 表示整个数组,取的是整个数…...

Linux学习笔记13 系统进程管理
前文 Linux学习笔记10 系统启动初始化,服务和进程管理(上)-CSDN博客 Linux学习笔记11 系统启动初始化,服务和进程管理(下)-CSDN博客 Linux学习笔记12 systemd的其他命令-CSDN博客 之前学习了怎么使用sy…...

Spring Boot 项目集成camunda流程引擎
Spring Boot 项目集成camunda流程引擎 camunda地址 camunda中文地址 使用camunda开源工作流引擎有:通过docker运行、使用springboot集成、部署camunda发行包、基于源代码编译运行等多种方式。 文本重点介绍如何在Spring Boot应用程序中如何集成Camunda Platform开…...

2024.12.2工作复盘
1.今天学了什么? 简单的写了一篇博客,是关于参数校验的问题,参数校验,一个是前后端校验到底一不一致,一个是绕过前端校验,看后台的逻辑到底能不能校验住。 2.今天解决了什么问题? 3.今天完成…...

Hot100 - 二叉树的中序遍历
Hot100 - 二叉树的中序遍历 最佳思路: 中序遍历的顺序是:左子树 -> 根节点 -> 右子树。为了实现这个顺序,我们可以利用栈来模拟递归过程,从而避免栈溢出的问题。在遍历过程中,始终向左子树深入,直到…...

docker build ubuntu ssh
dockerfile 构建镜像 为了使用Dockerfile构建Docker镜像,请遵循以下步骤: 创建一个名为Dockerfile的文件,并在其中定义镜像的构建指令。 FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu:24.04# 安装openssh-server和pas…...

三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序
三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序 文章目录 前言三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序基于黑翅鸢BKA优化算法的三维路径规划一、研究基本原理二、黑翅鸢BKA优化算法的基本步骤:三、详细流程四、总结 二、实验结果…...

day01(Linux底层)基础知识
目录 导学 基础知识 1、Bootloader是什么 2、Bootloader的基本作用 3、入式中常见的Bootloader有哪些 4、Linux系统移植为什么要使用bootloader 5、uboot和Bootloader之间的关系 6.Uboot的获取 7、uboot版本命名 8、uboot版本选择 9、uboot的特点 10.Uboot使用 导学…...

flink学习(13)—— 重试机制和维表join
重试机制 当任务出现异常的时候,会直接停止任务——解决方式,重试机制 1、设置checkpoint后,会给任务一个重启策略——无限重启 2、可以手动设置任务的重启策略 代码设置 //开启checkpoint后,默认是无限重启,可以…...