Mapbox Android SDK 第三方矢量瓦片
Mapbox Android SDK Third Party Vector Tiles
我一直在使用 Mapbox 的 Android SDK 作为原型,想知道是否有人知道如何使用不是来自 Mapbox 服务器的矢量切片地图。例如,我想使用 Mapbox 的 Android SDK 加载 Mapzen 甚至 OpenMapTiles 矢量切片地图,这与加载 Mapbox 的默认地图样式没有太大区别。
您可以使用 MapView#setStyleUrl
来做到这一点。
首先使用这种简单的样式在您的 assets/
目录中创建 mapzen.json
(请务必将 YOUR_MAPZEN_API_KEY
替换为您的真实密钥)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"
}
}]
}
然后在您的 MapView
上设置自定义样式:
mapView.setStyleUrl("asset://mapzen.json");
最后,加载地图:
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
//customize map
}
});
我一直在使用 Mapbox 的 Android SDK 作为原型,想知道是否有人知道如何使用不是来自 Mapbox 服务器的矢量切片地图。例如,我想使用 Mapbox 的 Android SDK 加载 Mapzen 甚至 OpenMapTiles 矢量切片地图,这与加载 Mapbox 的默认地图样式没有太大区别。
您可以使用 MapView#setStyleUrl
来做到这一点。
首先使用这种简单的样式在您的 assets/
目录中创建 mapzen.json
(请务必将 YOUR_MAPZEN_API_KEY
替换为您的真实密钥)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"
}
}]
}
然后在您的 MapView
上设置自定义样式:
mapView.setStyleUrl("asset://mapzen.json");
最后,加载地图:
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
//customize map
}
});