2013-10-22 64 views
5

我試着準備OSM(* .osm.pbf) - 整個意大利的數據,用於離線使用它的iPhone應用程序。我需要從7到16縮放級別,因爲全國各地都有很多POI。整個國家的iOS離線地圖(OSM)

This是我的出發點。這個解決方案的問題是數據庫的巨大文件大小。

是否有針對iOS 6/7的基於矢量的離線地圖使用的開源解決方案? 或者,是否可以最小化數據庫文件大小?

回答

3

數據庫的大小很大程度上取決於您想要存儲的信息。 OSM有很多不同的features,其中你只需要一小部分。如果您只需要POI,那麼您可以過濾掉所有高速公路,土地,湖泊和河流,電力線以及可能的建築物輪廓。這可以通過刪除所有elements和相應的tags來完成,因此結果數據庫將小得多。 osmfilter可能會有所幫助。

有一長串OSM-based applications for iOS其中有些是開源的。還有一個關於vector tiles的維基頁面。但請記住tiles通常僅代表一個視覺地圖,不包含有關POI或其他功能的信息。

+0

謝謝您的信息和鏈接。我對地圖的主題很陌生,特別是離線地圖。我發現這個問題很深刻,很難找到一個起點。對我來說,放棄某些功能似乎不是合適的解決方案。文件大小仍然過大。你能否給我另外一點開始? (可能是基於矢量)是否可以爲未來的擴展實現離線路由? –

+1

對標籤使用白名單可能會更好,而不是刪除特定的標籤(通過黑名單),但這需要一些努力。無論如何,你必須在維基上做一些閱讀,以瞭解你需要哪些標籤,哪些不需要標籤,這取決於你的用例。當然,您可以稍後將其用於離線路由,具體取決於您保留哪些標籤以及放置哪些標籤。除此之外,我不確定你究竟想要問我什麼。 – scai

6

我對這個話題做了大量的研究,因爲我目前的項目需要離線映射功能。

通過向您指出我找到的一些可用的開源工具&項目,我將爲您節省大量時間。

OpenStreetPad - https://github.com/beelsebob/OpenStreetPad/

該項目不再保留。但是,它直接從osm.pbf文件讀取併成功呈現地圖。您將不得不管理想要映射的區域的大小,因爲如果您嘗試將整個國家加載到該區域,該實現似乎會掛起並最終崩潰。我爲洛杉磯地區的一個子集使用了一個25mb的osm.pbf文件,並且效果很好。我認爲渲染引擎需要優化。

Mapsforge移植到iOS - https://github.com/medvedNick/Mapsforge_iOS

這一個是速度更快,似乎做得更好繪製矢量數據。

libosmscout - http://wiki.openstreetmap.org/wiki/Libosmscout

這是一個開放源碼的C++庫進行脫機渲染和路由與矢量地圖。它被積極維護(見他們的郵件列表)。我無法在Mac OSX上編譯它,但也許你會有更好的運氣。似乎是一個功能強大,功能強大且便攜的圖書館。他們已經將它運行在Fedora,Moblin,Ubuntu,Debian,Windows,Qt和Mac OSX/iOS上。

祝你好運。如果您使用這些工具獲得某種突破,請返回並分享您的結果。我正在做同樣的事情,我可以自己使用指針。

1

這個問題有點舊了,但它在搜索OSM矢量地圖時出現了。

WhirlyGlobe-Maply工具包可以顯示基於OSM(和其他)數據的矢量地圖。它是開源的,基於OpenGL ES,速度非常快。目前的版本是針對iOS開發的Android端口。

還有一個工具鏈來幫助從OSM數據產生矢量地圖。詳情請閱讀here