天天看點

開放地圖OpenStreetMap與PostGIS的三生三世十裡桃花

postgresql , postgis , pgrouting , osm , openstreetmap , 開放地圖

喜歡自由嗎?喜歡自由的使用全球地圖嗎?喜歡自由的貢獻、開發全球地圖嗎?那你一定要來了解一下風靡全球的openstreetmap。谷歌最強勁的對手。

openstreetmap全球統計報告

<a href="http://wiki.openstreetmap.org/wiki/stats#registered_users_statistics_reports">http://wiki.openstreetmap.org/wiki/stats#registered_users_statistics_reports</a>

開放地圖OpenStreetMap與PostGIS的三生三世十裡桃花
開放地圖OpenStreetMap與PostGIS的三生三世十裡桃花

<a href="http://wiki.openstreetmap.org/wiki/zh-hans:%e5%85%b3%e4%ba%8e">http://wiki.openstreetmap.org/wiki/zh-hans:%e5%85%b3%e4%ba%8e</a>

openstreetmap是一個全人類都可以編輯及自由使用的全球地圖。其中的大部分内容都由志願者從無到有地建構起來,并以開放授權釋出。

openstreetmap版權協定允許自由且免費使用我們的地圖圖像與地圖資料,而且本項目鼓勵把資料用于有趣嶄新的用途。欲知道為什麼我們要開放的地圖,請參考 why openstreetmap? ,哪裡你亦可找到我們最常見的問題:“為什麼不使用谷歌(google)地圖?”

浏覽我們的地圖十分容易。随便翻看一下地圖,感受該圖的覆寫區域和詳細程度。數年來我們取得了豐碩的成果,達成了許多裡程碑事件。衆多個人、政府和企業已經利用了這些地圖資料。在很多國家,openstreetmap 已經成為其他地圖供應商在諸多應用中的可行替代品。然而地圖尚未完成,世界依舊廣袤,你生活的地方周邊 osm 看起來怎樣呢?

這并不是普通的線上項目。我們并不隻是在電腦屏前默默繪圖;我們會外出測量大小城鎮及鄉郊。這是一項社群地圖繪制成果。我們使用 wiki 式的協作編輯軟體去實作,是以我們的地圖将不斷擴大、優化。如果你有全球定位系統(gps)裝置,你可以向本項目貢獻自己錄制的軌迹。我們也可以使用必應航空影像或其他制圖手段。你可以直接用線上編輯器id,更可以下載下傳josm桌面應用程式。各适其式,款款出色。

大量的軟體開發工作正将本項目帶向諸多不同的方向。正如前章所述,我們設計了各種地圖編輯工具。事實上,從前端的瓦片地圖界面到背景的資料存取 api (讀寫地圖資料的網絡服務接口),正是這些開源軟體驅動了 openstreetmap 。運用我們的資料開展的子項目有着良好的機遇,但是我們的核心元件的漏洞修複和功能增加也需要人來幫助。

我們始終歡迎開發者和翻譯員!

openstreetmap 基金會是一家募集資金的機構。購買和維護用于 openstreetmap 項目的伺服器是一項巨大的開支。基金會支援本項目,但并不控制本項目或“擁有” 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.

<a href="https://github.com/digoal/blog/blob/master/201703/20170327_01_pdf_001.pdf">《osm在極低gis中對應用》</a>

分為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資料由以下元素組成和表示方法:

詳見

<a href="http://wiki.openstreetmap.org/wiki/elements">http://wiki.openstreetmap.org/wiki/elements</a>

節點(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網站中全部都是來自使用者上傳的gpx資料,登陸openstreetmap網站後,使用者可以輸入經緯度的區間,構成一個矩陣區間,那麼這部分的資料會被下載下傳。

<a href="http://wiki.openstreetmap.org/wiki/postgresql">http://wiki.openstreetmap.org/wiki/postgresql</a>

<a href="http://wiki.openstreetmap.org/wiki/converting_map_data_between_formats">http://wiki.openstreetmap.org/wiki/converting_map_data_between_formats</a>

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. (以路由為目的)

<a href="http://wiki.openstreetmap.org/wiki/using_openstreetmap">http://wiki.openstreetmap.org/wiki/using_openstreetmap</a>

postgis是一個曆史非常悠久的gis庫,除了能夠處理gis資料,由于架構是通用的,是以還可以處理複雜的向量資料、多元資料等。

與postgis與postgresql 是openstreetmap軟體開發元件中的必要元件。

開放地圖OpenStreetMap與PostGIS的三生三世十裡桃花

postgis與pointcloudlib結合,可以落地到非常廣泛的場景中。比如精密加工、測繪、3d列印等。

<a href="http://pointclouds.org/documentation/tutorials/">http://pointclouds.org/documentation/tutorials/</a>

開放地圖OpenStreetMap與PostGIS的三生三世十裡桃花

<a href="http://planet.postgis.net/">http://planet.postgis.net/</a>