2017-06-29 9 views
1

私はMapboxのAndroid SDKをプロトタイプ用に使用していましたが、マップボックスのサーバではないベクトルタイルマップを使用する方法を知っている人がいますか?たとえば、Mapboxのデフォルトのマップスタイルを読み込むのと比較して、MapboxのAndroid SDKを使用してMapzenまたはOpenMapTilesのベクトルタイルマップを読み込みたいとします。Mapbox Android SDKサードパーティのベクトルタイル

答えて

2

MapView#setStyleUrlを使用してこれを行うことができます。

mapView.setStyleUrl("asset://mapzen.json"); 

:まずその後、あなたのMapViewにカスタムスタイルを設定https://mapzen.com/developers/sign_up

{ 
"version": 8, 
"sources": { 
"osm": { 
    "type": "vector", 
    "tiles": ["https://vector.mapzen.com/osm/all/{z}/{x}/{y}.mvt?api_key=[YOUR_MAPZEN_API_KEY]"] 
} 
}, 
"layers": [{ 
    "id": "background", 
    "type": "background", 
    "paint": { 
     "background-color": "#41afa5" 
    } 
}, { 
    "id": "water", 
    "type": "fill", 
    "source": "osm", 
    "source-layer": "water", 
    "filter": ["==", "$type", "Polygon"], 
    "paint": { 
    "fill-color": "#3887be" 
} 
}] 
} 

このシンプルなスタイル(あなたの本当のキーでYOUR_MAPZEN_API_KEYを交換してください)を使用してassets/ディレクトリにmapzen.jsonを作成

最後に、地図を読み込みます。

mapView.getMapAsync(new OnMapReadyCallback() { 
    @Override 
    public void onMapReady(MapboxMap mapboxMap) { 
    //customize map 
    } 
}); 
+0

恐ろしい!特にMapboxのために.jsonファイルが必要ですか、それともサードパーティのものですか? – jlvmoster

+0

ねえ、これを試しましたが、apache2とphpを使ってカスタムサーバーを使ってオフラインマップをホストしています。私は[ここ](https://github.com/klokantech/tileserver-php)で見つかったtileserver-phpを使用しています。私は、http://public_ip_address/tileserver/tileserver.php?/index.json?/ mbtiles/united_states_of_america/{z}/{x}/{y}の 'tiles'キーからurlをサーバのhttpアドレスに置き換えました。 .pbf'しかし、アプリは背景色だけを表示します。助けてください! – jlvmoster

+0

Nvm私はそれを働かせました、ありがとう! – jlvmoster

関連する問題