开放地图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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
域名解析 Linux Shell
CentOS 7 执行 yum 命令失败问题的排查方法
本文主要为大家讲解CentOS 7系统中执行yum命令失败等常见问题的排查方法。
5641 0
CentOS 7 执行 yum 命令失败问题的排查方法
|
2月前
|
人工智能 缓存 自然语言处理
千问云智能体Agent模型:Qwen3.7-Max列国产模型第一,在编程、推理能力提升,费用限制5折中
Qwen3.7-Max是阿里云2026年发布的旗舰智能体大模型,专注长周期自主执行,在编程(SWE-bench Pro 60.6分)、推理、办公自动化等能力上行业领先。国产模型全球盲测第一,支持MCP集成与Vibe Coding。现限时5折,输入/输出均降50%,并赠100万Tokens免费额度。快速体验:https://t.aliyun.com/U/fPVHqY
793 4
|
3月前
|
人工智能 安全 专有云
深度访谈:阿里云×平头哥,模型推理提升13倍背后的秘密
2026年初,AI焦点正从“对话”转向“推理”:OpenClaw爆火、AI Coding成新基建、大模型迈向Agent化执行。算力瓶颈、成本压力与安全预警交织,推理效率成为产业主战场。本文深度对话阿里云与平头哥专家,剖析软硬协同、MoE优化、量化压缩等关键技术演进,揭示国产AI基础设施如何通过系统级创新突破“不可能三角”。
392 1
|
人工智能 算法 定位技术
AR 导航导览技术如何实现的?提供全场景解决方案深度解析
传统导航在复杂场景中存在定位断层、空间认知成本高及实景导航实施难等问题。AR导航导览通过“实景+虚拟融合”,结合高精度定位引擎、实时三维渲染引擎和智能路径规划引擎,实现室内外无缝衔接的沉浸式体验。如需AR导航导览解决方案欢迎私信获取,如有项目合作及技术交流欢迎私信作者哦~
1359 1
|
人工智能 自然语言处理 数据可视化
Agentic Reasoning:推理界RAG诞生!牛津大学框架让LLM学会『组队打怪』:动态调用搜索/代码代理,复杂任务准确率飙升50%
Agentic Reasoning 是牛津大学推出的增强大型语言模型(LLM)推理能力的框架,通过整合外部工具提升多步骤推理、实时信息检索和复杂逻辑关系组织的能力。
836 1
|
前端开发 安全 关系型数据库
Flask的学生信息管理系统的设计与实现
Flask的学生信息管理系统的设计与实现
1807 0
|
监控 关系型数据库 Linux
Linux日志管理工具:Logrotate(二)
Linux日志管理工具:Logrotate(二)
1996 2
|
数据采集 存储 JavaScript
(2024)豆瓣电影TOP250爬虫详细讲解和代码
这是一个关于如何用Python爬取2024年豆瓣电影Top250的详细教程。教程涵盖了生成分页URL列表和解析页面以获取电影信息的函数。`getAllPageUrl()` 生成前10页的链接,而`getMoiveListByUrl()` 使用PyQuery解析HTML,提取电影标题、封面、评价数和评分。代码示例展示了测试这些函数的方法,输出包括电影详情的字典列表。
1768 3
|
存储 缓存 开发工具
Transformers 4.37 中文文档(十三)(4)
Transformers 4.37 中文文档(十三)
1475 1
|
编解码 算法 网络协议
软考网工计算题总结(一):总共35类题型,进来复习啦!
软考网工计算题总结(一):总共35类题型,进来复习啦!
1408 3