Zh-hans:Develop
OpenStreetMap并不仅仅是数据源,同时它也开放源代码,你可以自由地开发它的功能!
有两个使用OSM的主要方法:
初步了解
如果你有问题,想法或者只是想见见少数的开发者,你可以通过下面的几个方式联系OSM开发社区。
OSM是如何运行的
运行openstreetmap.org的代码是由相互独立但一起工作的组件组成的,以提供API,地图浏览以及其他功能。
The Rails port是驱动openstreetmap.org的软件框架,它是OSM的页面和基础API的来源。OpenStreetMap的数据(“the planet”)以PostGIS的形式存储在PostgreSQL中,并且被渲染成好看(?)的Mapnik地图瓦片。那些地图瓦片地图浏览界面是由Leaflet驱动的。
从内部角度来说,osm2pgsql和osmosics都是转换OSM XML为PostGIS形式的必要的基础设施。它们与Planet.osm以及其他程序一起工作,让其他站点使用并分发OSM数据。
用户可以使用像iD,Potlatch 2和JOSM的编辑器,添加以及更改OpenStreetMap数据。
背景
有大量的关于OpenStreetMap储存更改地理数据的风格的知识需要你来了解,这会帮助你更了解运行原理。如果你想要做数据联系工作的话,可以再复习一下XML Schema,要素以及下载数据。
同时,由于尺寸限制,OpenStreetMap在一个相对较小的服务器部署上运行 - 查看我们在服务器硬件上的笔记了解更多细节。同时我们也有API v0.6的镜像网站以及用于开发与测试的API,这些可以帮助测试与OSM API交互的代码。
如何参与
许多OpenStreetMap的项目使用Git(GitHub上的镜像),你可以简单地为我们的库贡献更改。
如果是大更改,你可能需要在开发服务器上注册一个账号来做认真的测试。
主要项目
OSM网站The Rails port(Ruby)
这里制作了站点的UI以及API。The Rails port页面有大量的有用的初学者信息。这里需要设计上的帮助:阅读Rails port UI,这是一个设计者的快速指南。新用户也可以查看推送请求, 作为装备好the Rails Port的练习。你也可以通过贡献翻译来帮助我们。
搜索并且进行地理编码Nominatim
桌面地图数据编辑器JOSM(Java)
JOSM是最受欢迎以及最好用的编辑器之一。
线上数据编辑器iD(Javascript)
iD是OpenStreetMap的最新编辑器。用户通过测试以及回报问题来帮助编辑器,或者解决标记了good-first-issue的问题。
OSM的默认风格
其他地图风格是与网站分离的。请在它们的wiki页面上了解更多或者查看地图风格图块底部的信息。
线上数据编辑器Potlatch 2(ActionScript)
Potlatch 2曾是新OpenStreetMap用户的默认编辑器。你可以通过贡献翻译帮助编辑器。
OSM数据处理方面的瑞士军刀Osmium(C++)
Osmium(又称Libosmium)是处理OpenStreetMap数据方面的瑞士军刀。它是一个读写OpenStreetMap数据的库并且可以为其他项目(例如Osm2pgsql)服务。
Osmium工具是一个在不同文件样式之间转换OSM数据的命令行程序。它同时还能检查文件,申请文件的更新以及操作限定空间或主题的摘取。
Pyosmium提供了由Python为语言运行的Osmium以及一个简单的保留附近的OSM planet dumps(取决于时间)的方法。
用于渲染或地理编码的OSM数据导入器osm2pgsql(C++)
osm2pgsql是一个好用的导入OSM XML文件为PostGIS数据库的工具。这里很欢迎文档和测试相关工作。
电子地图库Leaflet(JavaScript)
提供普通的地图浏览界面。Javascript whizzes可以帮助我们更快速制作地图图层。
使用Mapnik的地图渲染(C++)
主要的后端OSM数据渲染引擎。