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
}
});
恐ろしい!特にMapboxのために.jsonファイルが必要ですか、それともサードパーティのものですか? – jlvmoster
ねえ、これを試しましたが、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
Nvm私はそれを働かせました、ありがとう! – jlvmoster