Openstreetmap

Openstreetmap 是什么?

其实看看 https://www.openstreetmap.org/ 就知道了,地图一个,还是万国语。后文中可能会对其进行简称OSM

入门,第一阶段

这里也没有什么细节,就是关于地图的各种图层啊,边界啊,数据什么的,简而言之就是大杂烩,什么都得接触一些。

具体涉及到哪些内容:

  1. Postgis
  2. Osm2pgsql
  3. Polyline Encode
  4. Geojson
  5. TopoJSON
  6. EPSG:4326
  7. Mapnik
  8. WikiData
  9. ST_***

总的来说,上面的一部分都只是为了获得一个东西,边界和线路数据。Openstreetmap 提供了大量的接口来支持我的设想。设想都是没有问题的,只是数据的大小和整理的难度超乎了我的想想。

一些高级的工作

为了边界数据,需要全球的边界数据

在这个期间,了解到几个网站,起初以为这里有自己想要的一切数据,后来是真的有,只是和自己的预期有所差异罢了。

  1. http://gadm.org 这是一个神奇的网站,特意整理了全球行政区域的边界内容,很好的初心,只可惜数据有点落后,只能期待官网的那句:The current version is 2.8 (November 2015). It delimits 294,430 administrative areas. Version 3 is expected to be available by April 2018.
  2. https://wambachers-osm.website/boundaries/ 这里的数据可能是已知最详细的了,只可惜是私人整理,数据的导出实在没有保证,而且部分数据和想象中的有所出入,只能可惜了。期间遇上对方升级,随便找了个BUG。
  3. http://wikidata.org/ 这是一个神奇的网站,有很多你无法想想的内容,而且结构化。让我惊奇的是,如果我想找到中国每个省会的坐标,简直不要太容易,前提是学习过它相关的查询语句。
  4. http://polygons.openstreetmap.fr/ 这里提供了边界数据的下载,针对特定的osm_relation_id,东西很好用,而且同步很及时,只可惜只支持relation_id,我所需要的可不止这些。
  5. http://overapi.com/ 这个是一个关于openstreemap的官方接口,提供查询语句和结构化的搜索,同时下载内容也是很便利的。实际上,有了这个polygons.openstreetmap.fr存在的必要性似乎就没那么大了,但这个接口实在太慢。
  6. https://overpass-turbo.eu/ overapi的调试工具,可以算复杂查询的必备了
  7. https://geojosn.io/ 一个单纯的geojson查看与编辑的网站,只可惜对超大数据的支持不友好,但也没有更好的了。

中间插入了一个wikidata,或许会很困惑,但同属开放性编辑项目,这个这两个内容的关系就特别有意思了,后文详解。

WikiData 在此的重要性

为什么要深入了解它?

我们在地图上的数据,一般都会指定一个数据来源,以验证数据的真实性。相应的地图上也有很多附加属性,比如名称等,名称的学问就大了,各种翻译之类的,不仅英语分为很多个版本,中文的也很过分,如果只是单纯的认为只有简体和繁体,就太天真了,实际分类多得超乎我们的想象,而Wikidata就解决了这个问题,完全结构化的形式,便于程序的引用。

地图与它的关联有多深

除了上面提到的语言问题,其实也没有什么特殊的,就是那些热门但你想查询的数据。

一个不太恰当的例子,给你一个坐标,如何判断它是否在首都国际机场。

  1. 简单的方案,打开地图,输入坐标,看一下,搞定。
  2. openstreetmap 输入机场,得到边框数据,程序判断之。
  3. WikiData搜索机场,得到ID,下载边框,判断

方案二在于大部分时间都得去验证关于搜索结果的准确性,而OSM的搜索结果实在不敢恭维,这个时候基本无法去人工辨认。方案三的问题是,如何从WikiData得到想要的数据,由于是结构化的数据,整个就简单多了,比如得知机场IATA为PEK,搜索得到WikiDataId为Q32190,然后得到OsmRelId为Way-292809708,一切都水到渠成。至于具体怎么处理这个问题,涉及到的东西就挺多了,足够学习好一阵子了,但都是面向API编程。

方案三的三步基本可以拆解得到如下几个地址:

  1. https://query.wikidata.org/ 关于如何通过PEK查询到机场WikiData
  2. https://overpass-turbo.eu/ 关于如何从WikiData查询得到OSM相关ID
  3. https://www.openstreetmap.org/way/292809708 地图上显示

你可能感兴趣的:(Openstreetmap)