2016-04-14 96 views
0

我正在嘗試開發一個離線徒步導航應用程序。離線導航與KML的Android應用程序中的Mapbox Sdk

該應用程序向用戶顯示他可以去的附近軌道/路線列表。 例如:
- 與Etna Vulcan交談
- 在樹林裏漫步。

我有幾個KML文件由本地嚮導提供給我,每一個都爲不同的軌道。因此,如果我選擇「步行到埃特納火山岩」,我將有一個地圖,我必須遵循的軌道去埃特納火山,有一些有趣的標記點(例如:避難所,紀念碑)。這些數據實際上已經準備就緒,採用KML格式。

因此: 用戶從我提供的列表中選擇曲目,然後手機會在地圖上顯示曲目(從kml或等效曲線)到當前用戶位置。

我正在使用MapBox SDK(但我打開替代品)。

實際上,我已經成功下載了該區域的離線地圖(西西里島),但我很確定如何在地圖上寫入我的kml。

我還在Mapbox Studio中導入了kml,但我不知道如何將MapBox Studio地圖下載到我的應用程序中。

謝謝你的時間!

+0

你能多解釋一下嗎? –

回答

0

如果Mapbox看起來是一個很好的選擇,那麼你只需要研究他們的Android SDK以查看是否支持繪圖標記和座標軌道。

對於軌道看到https://www.mapbox.com/android-sdk/geojson/

相關(給你)部分是正確的,在他們的示例代碼結尾:

LatLng[] pointsArray = points.toArray(new LatLng[points.size()]); 

// Draw Points on MapView 
mapboxMap.addPolyline(new PolylineOptions() 
        .add(pointsArray) 
        .color(Color.parseColor("#3bb2d0")) 
        .width(2)); 

在這裏,他們必須在點ArrayList座標點。它們已從GeoJSON數據中提取,但您只需從KML數據中提取座標點,然後根據該示例繪製軌跡。

對於標記看到https://www.mapbox.com/android-sdk/marker/

他們有這樣的例子代碼:

mapboxMap.addMarker(new MarkerOptions() 
        .position(new LatLng(48.13863, 11.57603)) 
        .title("Hello World!") 
        .snippet("Welcome to my marker.")); 

對於使用自定義圖標標記看到https://www.mapbox.com/android-sdk/custom-marker-icon/

他們有這樣的例子代碼:

// Create an Icon object for the marker to use 
IconFactory iconFactory = IconFactory.getInstance(MainActivity.this); 
Drawable iconDrawable = ContextCompat.getDrawable(MainActivity.this, drawable.ic_directions_boat_black_18dp); 
Icon icon = iconFactory.fromDrawable(iconDrawable); 

// Add the custom icon marker to the map 
mapboxMap.addMarker(new MarkerOptions() 
        .position(new LatLng(-33.8500000, 18.4158234)) 
        .title("Cape Town Harbour") 
        .icon(icon)); 

所以你只需要使用一個普通的An droid可繪製自定義圖標。

看起來相當方便。我自己並沒有使用過Mapbox SDK。

+0

謝謝您的建議。你知道一個更好的解決方案嗎(比mapbox?) – Pasquale

+0

這裏是[離線地圖提供商的建議](https://stackoverflow.com/questions/31467112/offline-maps-osm#31517342)。除了檢查他們是否提供繪製標記和軌跡的簡單方法之外,我沒有任何建議。基於矢量數據(就像這些)服務可能是正確的選擇。數據非常緊湊,可以很好地適應不同的縮放級別。例如,Mapbox使用非常緊湊的數據格式,例如, Mapzen瓷磚是人類可讀的GeoJSON,佔用更多空間。這也可能是一個決定性因素。而他們提供的視覺地圖樣式可能是另一個。 –