Zh-hans:Develop

From OpenStreetMap Wiki
Jump to navigation Jump to search

OpenStreetMap并不仅仅是数据源,同时它也开放源代码,你可以自由地开发它的功能!

有两个使用OSM的主要方法:

  • 通过开发OSM本身。这包括了OpenStreetMap网站以及相关组件和服务。
  • 通过使用OSM数据源。你可以使用OSM数据和服务,加上来自我们的社区的软件和服务,搭建你想要的任何东西。


将OpenStreetMap用于开发


初步了解

如果你有问题,想法或者只是想见见少数的开发者,你可以通过下面的几个方式联系OSM开发社区。

OSM是如何运行的

运行openstreetmap.org的代码是由相互独立但一起工作的组件组成的,以提供API地图浏览以及其他功能。

The Rails port是驱动openstreetmap.org的软件框架,它是OSM的页面和基础API的来源。OpenStreetMap的数据(“the planet”)以PostGIS的形式存储在PostgreSQL中,并且被渲染成好看(?)的Mapnik地图瓦片。那些地图瓦片地图浏览界面是由Leaflet驱动的。

从内部角度来说,osm2pgsqlosmosics都是转换OSM XMLPostGIS形式的必要的基础设施。它们与Planet.osm以及其他程序一起工作,让其他站点使用并分发OSM数据。

用户可以使用像iDPotlatch 2JOSM编辑器,添加以及更改OpenStreetMap数据。

背景

有大量的关于OpenStreetMap储存更改地理数据的风格的知识需要你来了解,这会帮助你更了解运行原理。如果你想要做数据联系工作的话,可以再复习一下XML Schema要素以及下载数据

同时,由于尺寸限制,OpenStreetMap在一个相对较小的服务器部署上运行 - 查看我们在服务器硬件上的笔记了解更多细节。同时我们也有API v0.6的镜像网站以及用于开发与测试的API,这些可以帮助测试与OSM API交互的代码。

如何参与

许多OpenStreetMap的项目使用GitGitHub上的镜像),你可以简单地为我们的库贡献更改

如果是大更改,你可能需要在开发服务器上注册一个账号来做认真的测试。

主要项目

OSM网站The Rails port(Ruby)

这里制作了站点的UI以及APIThe Rails port页面有大量的有用的初学者信息。这里需要设计上的帮助:阅读Rails port UI,这是一个设计者的快速指南。新用户也可以查看推送请求, 作为装备好the Rails Port的练习。你也可以通过贡献翻译来帮助我们。

搜索并且进行地理编码Nominatim

桌面地图数据编辑器JOSM(Java)

JOSM是最受欢迎以及最好用的编辑器之一。

线上数据编辑器iD(Javascript)

iD是OpenStreetMap的最新编辑器。用户通过测试以及回报问题来帮助编辑器,或者解决标记了good-first-issue的问题。

OSM的默认风格

主条目:Zh-hans:Standard tile layer

其他地图风格是与网站分离的。请在它们的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数据渲染引擎。

使用Tirex的地图瓦片渲染系统(C++以及Perl)

另请查看Zh-hans:Tirex/Development以及Zh-hans:Tirex/Internals