本文对OpenStreetMap(OSM)网页与各类OSM数据的多种下载方式加以详细介绍,并对不同数据下载方式加以对比。
OSM数据包含道路与铁路路网、建筑、水体、土地利用、兴趣点、行政区边界等各类数据,同时具有.shp、.pbf、.osm、.csv等多种类型,方便大家不同的使用需求。在这里有一点需要注意:OSM数据在国家边界数据方面非常不准确,如有相关需求,大家可以从其它网站获取对应边界数据。
接下来进入本文正题——OSM数据的下载。首先,进入OSM官网。此时可以看到屏幕中均为地图显示区域,需要点击左上角的“Export”按钮打开数据下载窗口。

数据下载窗口如下所示,其中上半部分为研究区域选择界面,下半部分则为多种数据下载方式的选择界面。

我们先对研究区域选择界面加以介绍。其中,我们可以通过拉动屏幕所显示的地图范围或直接在下图所示框内修改经、纬度的方式,对研究区域加以选择。

此外,还可以点击经、纬度框下方的蓝色字符,通过手动划定矩形区域的方式选择研究区域范围。

选择好研究区域后,就可以开始OSM数据的下载了。
首先,我们可以直接点击屏幕左侧的“Export”按钮导出数据;但需要注意,在研究区域过大时,这一方法将会失效。

这种方法导出的数据格式为.osm。

上述.osm格式的数据需要进行转换。其中,利用ArcGIS Editor for OSM工具集实现转换是比较常用的一种方式,这一工具集的下载与安装方法可以参考文章ArcMap安装OSM路网数据编辑插件ArcGIS Editor for OSM的方法。
综上,可知这一下载方法的适用场景为数据量比较少,且具有ArcGIS Editor for OSM等可以转换.osm格式文件的工具时。
Overpass API是OSM数据库的一个镜像,当研究区域较大导致前述“Export”方法不能下载时,可以用这一方法进行下载。

这种方法导出的数据格式为空,即不含有文件后缀。个人认为这种数据可能比较适合于编写其它软件或程序时,需要调用地图接口时使用。

综上,可知这一下载方法的适用场景为数据量较大,且主要面向于开发需求时。
Planet OSM是一个定期更新的全球OSM数据集。

其实,Planet OSM和我们前面选好的研究区域就没有多大关系了——因为刚刚也提到,其数据是全球的OSM数据整合(所以叫做Planet);也就是说,不管我们的研究区域是北京的一个区,还是整个上海市,再或者是一个河南省,Planet OSM都是一个全球的、完整的数据集,都需要我们下载后自行裁剪。因为是全球的数据,因此其数据量非常大,由下图可知.xml格式文件就达到了106 GB,.pbf格式文件也有59 GB之大。

在这里,我们可以关注Planet OSM网页中最右侧的一栏。其向我们说明了,如果研究区域比较小,可以不用下全球的数据,而可以通过两个第三方网站获取小研究区域对应的OSM数据。这两个第三方网站我们马上会提到,这里暂且不细讲。

综上,可知这一下载方法的适用场景为研究区域非常大,甚至达到全球范围,且网速与电脑配置较好时。
Geofabrik Downloads便是前述Planet OSM中提到的第三方网站之一,其也是一个定期更新的OSM数据集。

和Planet OSM相比,其优势在于可以按照国家或地区进行更小范围研究区域数据的下载,而不用下载整个地球的数据了。

不过说实话,Geofabrik Downloads和Planet OSM相比也并没有好到哪去——其虽然可以不用下载全球数据,但它的子区域无非也就是精细到国家范围。例如以我国数据为例,若我们需要省、市乃至区范围的数据,都需要下载全国的数据后自行裁剪。

综上,可知这一下载方法的适用场景为研究区域相对较大,尤其是主要做全国范围的研究时。
Other Sources是OSM官网提供的数据下载其它方法的合集。

由于Other Sources所对应的方法相对比较多且小众,因此官网也是直接将Other Sources方法整合在Wiki中,大家如果有需要可以自行查阅。

综上,可知这一下载方法的适用场景为研究需求比较独立或小众,或本文所介绍的其它全部数据下载方法都不适合时。
BBBike也是前述Planet OSM中提到的第三方网站之一,其也是一个定期更新的OSM数据集。

BBBike的网站也非常简单,数据下载方式非常清晰。

BBBike的主要优点就是下图中我标注出来的部分:首先,可以单独下载全球200多个主要城市的独立数据,这对于做某一个单独城市(例如北京市、上海市等等)的研究而言,非常方便;其次,具有.shp格式的文件,方便我们后期直接用ArcMap等软件处理数据;再次,其还支持手动划定城市,例如假如我们要做洛阳这样一个三线城市的研究,其肯定不属于全球200多个主要城市的范围内,那么就可以我们手动划定多边形区域从而下载数据;最后,就是BBBike的OSM数据是每周更新的,完全不用担心数据时效性滞后。
所以真的,BBBike简直太适合OSM数据的下载了。

我们就以北京数据为例。在BBBike城市列表中找到Beijing。

点进去,就可以看到不同格式数据的下载;我们就下载一个.shp格式来试试看。

下载后的数据解压完毕,可以在README.txt中看到数据的更新时间。

数据非常齐全,包括道路与铁路路网、水体、兴趣点、建筑、土地利用等等。

在ArcMap中打开,也是非常方便。

综上,可知这一下载方法的适用场景非常广泛,几乎所有时候我们都可以借助这种方法进行OSM数据的下载。
ArcGIS Editor for OpenStreetMap是ArcMap软件中的一个工具集,通过其可以实现基于ArcGIS相关软件直接下载OSM数据,并基于下载后的数据进行数据编辑、空间分析、数据修改与回传至OSM服务器等多项功能。

ArcGIS Editor for OSM需要我们自行下载与安装,具体方法大家可以参考文章ArcMap安装OSM路网数据编辑插件ArcGIS Editor for OSM的方法。

不过基于ArcGIS Editor for OSM下载OSM数据也是需要根据经、纬度来的,并且还没有可视化界面,个人感觉也并不是很方便。
综上,可知这一下载方法的适用场景为研究区域比较固定,且只需要经、纬度就可以确定研究区域时。
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
question的一些答案关于redirect_to让我想到了其他一些问题。基本上,我正在使用Rails2.1编写博客应用程序。我一直在尝试自己完成大部分工作(因为我对Rails有所了解),但在需要时会引用Internet上的教程和引用资料。我设法让一个简单的博客正常运行,然后我尝试添加评论。靠我自己,我设法让它进入了可以从script/console添加评论的阶段,但我无法让表单正常工作。我遵循的其中一个教程建议在帖子Controller中创建一个“评论”操作,以添加评论。我的问题是:这是“标准”方式吗?我的另一个问题的答案之一似乎暗示应该有一个CommentsController参
我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------