开放地图OpenStreetMap与PostGIS的三生三世十里桃花

简介:

标签

PostgreSQL , PostGIS , pgrouting , OSM , OpenStreetMap , 开放地图


背景

喜欢自由吗?喜欢自由的使用全球地图吗?喜欢自由的贡献、开发全球地图吗?那你一定要来了解一下风靡全球的OpenStreetMap。谷歌最强劲的对手。

openstreetmap全球统计报告

http://wiki.openstreetmap.org/wiki/Stats#Registered_users_statistics_reports

pic

pic

什么是OpenStreeMap

http://wiki.openstreetmap.org/wiki/Zh-hans:%E5%85%B3%E4%BA%8E

OpenStreetMap是一个全人类都可以编辑及自由使用的全球地图。其中的大部分内容都由志愿者从无到有地构建起来,并以开放授权发布。

OpenStreetMap版权协定允许自由且免费使用我们的地图图像与地图数据,而且本项目鼓励把数据用于有趣崭新的用途。欲知道为什么我们要开放的地图,请参考 Why OpenStreetMap? ,哪里你亦可找到我们最常见的问题:“为什么不使用谷歌(Google)地图?”

地图

浏览我们的地图十分容易。随便翻看一下地图,感受该图的覆盖区域和详细程度。数年来我们取得了丰硕的成果,达成了许多里程碑事件。众多个人、政府和企业已经利用了这些地图数据。在很多国家,OpenStreetMap 已经成为其他地图供应商在诸多应用中的可行替代品。然而地图尚未完成,世界依旧广袤,你生活的地方周边 OSM 看起来怎样呢?

绘图

这并不是普通的在线项目。我们并不只是在电脑屏前默默绘图;我们会外出测量大小城镇及乡郊。这是一项社群地图绘制成果。我们使用 wiki 式的协作编辑软件去实现,因此我们的地图将不断扩大、优化。如果你有全球定位系统(GPS)设备,你可以向本项目贡献自己录制的轨迹。我们也可以使用必应航空影像或其他制图手段。你可以直接用在线编辑器iD,更可以下载JOSM桌面应用程序。各适其式,款款出色。

开发

大量的软件开发工作正将本项目带向诸多不同的方向。正如前章所述,我们设计了各种地图编辑工具。事实上,从前端的瓦片地图界面到后台的数据存取 API (读写地图数据的网络服务接口),正是这些开源软件驱动了 OpenStreetMap 。运用我们的数据开展的子项目有着良好的机遇,但是我们的核心组件的漏洞修复和功能增加也需要人来帮助。
我们始终欢迎开发者和翻译员!

OSM 基金会

OpenStreetMap 基金会是一家募集资金的机构。购买和维护用于 OpenStreetMap 项目的服务器是一项巨大的开支。基金会支持本项目,但并不控制本项目或“拥有” OSM 数据。基金会致力于激励自由地理空间数据的增长、发展、分发,从而提供任何人可使用和分享的地理空间数据。

OSM应用

web类应用、教学、科研等。

Web applications

Developers that want to use OpenStreetMap in their web applications can see the list of JavaScript libraries. There are additional libraries in other programming languages. Deploying your own Slippy Map lists corresponding JavaScript libraries and Content Management Systems supporting OpenStreetMap. Maybe you need WMS and TMS, or to create your own tiles.

Education

OpenStreetMap has created a unique curriculum that is focused on introducing the topics that OSM addresses: mapping, open source technologies, crowd sourcing and community efforts. It is geared towards university level students. Further, OpenStreetMap has several open problems which would make good student projects. These are items that need researching and "longer-term" issues which could be worked on by students as a project separate from the core open source development progress happening within the community.

Research

At the conference SotM-EU 2011, Muki Haklay gave a talk with advice to academics interested in OSM and the video is available online. See our Research page for details of academic research work.

《OSM在极低GIS中对应用》

如何贡献(制作)OSM地图

分为5个步骤

1. 收集数据

最常见的收集GPS数据的方法,一部带有GPS功能的手机,轨迹记录软件。

收集数据,OSM可以用到信息很多:

从最常见的“路名”到停车场、邮箱、邮编、港口。通常,由于使用的交通工具不同,不同的人对地图细节的要求也不同。例如,司机希望地图上标明高速公路、高架道路的匝口,两车道还是四车道,单行还是双向行驶;行人想了解公交车站,过街天桥或地道;户外旅行不仅希望知道路线,多半也想了解海拔高度。简单地说,把你认为可能有用的信息都标上。

OSM图友往往从基本开始,逐渐增加地图的细节。所以主干道、重要的道路是个不错的开始,人行道、邮箱之类多半最后才加上去。当然,各人有各自的方式,你完全可以自由发挥。

2. 上传数据

首先,将数据保存为GPX格式。GPS的手册或软件使用指南来确定如何将轨迹保存成GPX格式。

将GPX文件上传到OSM。

上传过程

2.1 打开 OSM 主页.

2.2 登录 (你需要在 这里 先注册一个 OSM 账号 ).

2.3 点击顶部的 “GPS traces” 标签.

2.4 点击 "See just your traces, or upload a trace".

2.5 如下操作3个编辑框:

2.5.1 选定你要上传的文件.

2.5.2 命名这个文件.

2.5.3 添加有助于找到它的标签,如 “英国伦敦” (每个单词都是一个标签, 所以 Isle of Wight 应该写成 "IOW" 或 "Isle-of-wight").

2.6 如果你希望和其它人分享你的数据 (我们鼓励这样做), 选中 "Public" .

2.7 点击 "Upload".

2.8 数据过一会儿就会加入到OSM中. 不过, 你可以在上传数据后立刻使用它。

2.9 完成后你可以用 JOSM 下载包括你的数据在内的这个区域内的所有数据。或者你可以在 Potlatch 中使用它. 方法是点击轨迹右侧的 'edit' 链接(不是顶上的'edit').

3. 创建和编辑OSM数据

OSM数据由以下元素组成和表示方法:

详见

http://wiki.openstreetmap.org/wiki/Elements

节点(Nodes): 最基本的要素,是其它要素的组成部分.

路线(Ways): 有方向性的节点序列, 在编辑器里显示成连接起来的线段.

闭合路线(Closed Ways): 闭合路线是完全闭合的路线. 一般用来表示区域如公园,湖泊,岛屿等.

所有这些元素都有标签,以描述地名,道路类型等信息。你可以用各种编辑器来创建元素和标签。

使用potlatch , josm , merkaartor 等软件,可以编辑OSM数据,例如将GPS轨迹点,串成道路。

4. 标示数据和新增资料

当完成了一条路线时,你需要给它加上标签来确定它在地图上渲染的效果.标签有很多,其中一些是很常用的.在 JOSM 中,通过在Properties/Memberships 添加键值对来添加标签.

当你完成了编辑后, 你需要 将你的修改上传到 OSM.

5. 渲染并试用地图

5.1 客户端渲染

Kosmos : Kosmos 是为了让OSM使用者在自己的计算机上渲染地图而设计的轻量级的OSM地图渲染平台. 大概是三种工具中最容易使用的.

Osmarender: 一个基于可扩展样式表语言转换 (XSLT) 的渲染器,能够创建可缩放矢量图形(SVG), SVG可以用浏览器观看或转换成位图.

Mapnik: 一个用C++写的非常快的渲染器,可以生成位图(png, jpeg)和矢量图形(pdf, svg, postscript)。

5.2 openstreetmap网站渲染

让数据显示在 OpenStreetMap 的主页 的 slippy map 上. 在主页的右上方有一个 '+' . 点击 '+' 后会出现一个包括 'Mapnik' 和 'Osmarender' 的基础层的选项. 分别显示对应的渲染器生成的地图.

如何下载地图OSM数据

OSM网站中全部都是来自用户上传的GPX数据,登陆openstreetmap网站后,用户可以输入经纬度的区间,构成一个矩阵区间,那么这部分的数据会被下载。

如何将地图数据导入PostgreSQL GIS库

http://wiki.openstreetmap.org/wiki/PostgreSQL

http://wiki.openstreetmap.org/wiki/Converting_map_data_between_formats

The PostGIS extension for PostgreSQL is often used for geographic data. PostGIS adds geospatial functions and two metadata tables. Again we do not use this for our core database, however we do use all of these things on the tile server database as required by the Mapnik rendering engine.

以下工具,可以将OSM数据导入PostgreSQL

Osmosis can be used to populate a more general PostgreSQL/PostGIS database from a Planet.osm OSM data dump file.

osm2postgresql is powered by Osmosis and does much more (but works only on GNU/Linux)

osm2pgsql handles transformation of the planet data into the expected format.

OSM2PostGIS pretty new

OSM in a box has a own converter

Imposm PostGIS importer that supports custom DB schemas. Can import planet files with low memory.

osm2pgrouting imports to PostgreSQL/PostGIS database for routing purpose. (以路由为目的)

OpenStreeMap与PostgreSQL的渊源

http://wiki.openstreetmap.org/wiki/Using_OpenStreetMap

PostGIS是一个历史非常悠久的GIS库,除了能够处理GIS数据,由于框架是通用的,所以还可以处理复杂的向量数据、多维数据等。

与PostGIS与PostgreSQL 是OpenStreetMap软件开发组件中的必要组件。

pic

PostGIS与pointcloudlib结合,可以落地到非常广泛的场景中。比如精密加工、测绘、3D打印等。

http://pointclouds.org/documentation/tutorials/

pic

参考

http://wiki.openstreetmap.org/wiki/Zh-hans:%E5%85%B3%E4%BA%8E

《OSM在极低GIS中对应用》

http://planet.postgis.net/

http://wiki.openstreetmap.org/wiki/Using_OpenStreetMap

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
38_多模态模型:CLIP的视觉-语言对齐_深度解析
想象一下,当你看到一张小狗在草地上奔跑的图片时,你的大脑立刻就能将视觉信息与"小狗"、"草地"、"奔跑"等概念联系起来。这种跨模态的理解能力对于人类来说似乎是理所当然的,但对于人工智能系统而言,实现这种能力却经历了长期的技术挑战。多模态学习的出现,标志着AI从单一模态处理向更接近人类认知方式的综合信息处理迈出了关键一步。
|
12月前
|
监控 NoSQL Java
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
若依(RuoYi)是一款基于Spring Boot和Vue.js的开源Java快速开发脚手架,支持OAuth2、JWT鉴权,集成多种安全框架和持久化框架。它提供了系统管理、监控管理、任务调度、代码生成等常用功能模块,适合中小型公司快速搭建Web应用。本文主要介绍若依框架的特点、版本发展、优缺点及项目部署步骤,帮助开发者快速上手并部署若依项目。
14158 3
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
|
人工智能 数据可视化 定位技术
DataV AI助手小技巧-如何制作PPT数据地图
“数据地图”是PPT汇报地区业务数据的最佳形式之一;以往制作数据地图需要用户有一定的编程和数据处理基础,制作门槛较高;随着DataV整合通义千问大模型能力之后,不懂编程和设计的用户也可以借助AI助手“零代码”制作数据地图,真正实现了人人可用的地图数据可视化。 进入大模型AI时代,人人可以变成职场跨界多面手!
12358 3
DataV AI助手小技巧-如何制作PPT数据地图
|
关系型数据库 数据库 PostgreSQL
|
监控 关系型数据库 Linux
Linux日志管理工具:Logrotate(二)
Linux日志管理工具:Logrotate(二)
1362 2
|
负载均衡 Cloud Native 数据可视化
Nacos与Eureka比较?
【6月更文挑战第29天】Nacos与Eureka比较?
641 2
|
数据采集 存储 JavaScript
(2024)豆瓣电影TOP250爬虫详细讲解和代码
这是一个关于如何用Python爬取2024年豆瓣电影Top250的详细教程。教程涵盖了生成分页URL列表和解析页面以获取电影信息的函数。`getAllPageUrl()` 生成前10页的链接,而`getMoiveListByUrl()` 使用PyQuery解析HTML,提取电影标题、封面、评价数和评分。代码示例展示了测试这些函数的方法,输出包括电影详情的字典列表。
1289 3
|
API 开发者 Windows
pywin32
pywin32
394 3
|
分布式计算 DataWorks 数据库连接
DataWorks操作报错合集之同步脚本报错This error often occurs when a lot dirty data exists in the source data. 是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
C语言
深入理解C语言中的printf函数及数据输出
深入理解C语言中的printf函数及数据输出
1062 0