Может ли кто-нибудь предоставить образец кода для использования службы ArcGIS Map в API MapBox GL? Благодаря!Использование ArcGIS Map Service в API MapBox GL?
ответ
Mapbox GL только потребляет векторные плитки, совместимые с Mapbox Vector Tiles spec [1].
Если ArcGIS Map Service обеспечивает совместимые векторные плитки, возможно, вы можете создать стиль с источником плитки, указывающим на упомянутую вами службу [2].
Спасибо за ваш ответ. Я видел, как люди отмечают, что они достигли этого. Мне просто нужен образец кода, чтобы заставить меня двигаться. Вот публичная конечная точка ArcGIS. Может быть, возможно через WMS? Я заинтересован в наложении различных услуг, связанных с погодой. http://nowcoast.noaa.gov/arcgis/rest/services/nowcoast/radar_meteo_imagery_nexrad_time/MapServer –
ArcGIS as WMS: http://nowcoast.noaa.gov/arcgis/services/nowcoast/radar_meteo_imagery_nexrad_time/MapServer/WMSServer?request= GetCapabilities & service = WMS –
<style>
body {
margin: 0;
padding: 0;
}
#map1 {
position: absolute;
top: 0;
bottom: 0;
width: 49%;
}
#map2 {
position: absolute;
top: 0;
bottom: 0;
left: 51%;
width: 49%;
}
#map1_label,
#map2_label {
padding: 0.5em;
position: absolute;
z-index: 1;
top: 10;
color: #FFF;
font-size: 1.2em;
background-color: rgba(0, 0, 0, 0.8)
}
#map1_label {
left: 10;
}
#map2_label {
left: 51%;
}
</style>
<div id="map1_label">Dynamic Map Service</div>
<div id="map2_label">Cached Map Service</div>
<div id='map1'></div>
<div id='map2'></div>
<script>
mapboxgl.accessToken = 'your-mapbox-api-key';
var map1 = new mapboxgl.Map({
container: 'map1',
style: 'mapbox://styles/mapbox/streets-v10',
center: [153.021072, -27.470125],
zoom: 15
});
var map2 = new mapboxgl.Map({
container: 'map2',
style: 'mapbox://styles/mapbox/streets-v10',
center: [153.021072, -27.470125],
zoom: 15
});
map1.on('load', function() {
map1.addLayer({
"id": "dynamic-demo",
"type": "raster",
"minzoom": 0,
"maxzoom": 22,
"source": {
"type": "raster",
"tiles": ['https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/export?dpi=96&transparent=true&format=png32&layers=show%3A0&bbox={bbox-epsg-3857}&bboxSR=EPSG:3857&imageSR=EPSG:3857&size=256,256&f=image'],
"tileSize": 256
}
});
});
map2.on('load', function() {
map2.addLayer({
"id": "cache-demo",
"type": "raster",
"minzoom": 0,
"maxzoom": 22,
"source": {
"type": "raster",
"tiles": ['https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'],
"tileSize": 256
}
});
});
</script>
Я знаю, что это старый пост, однако на всякий случай это помогает кому-либо, см. Выше: (две карты: одна с динамическим сервисом, другая с кешированной службой) –
Я не думаю, что это возможно. Услуги карты служат для изображений, gl - вектор. – CCantey
Это кому-то еще картографическое обслуживание, или ваше? Если последний, вы можете опубликовать свою картографическую службу в качестве слоя векторной плитки с помощью ArcGIS Pro. См. Https://doc.arcgis.com/ru/arcgis-online/reference/vector-tile-layers.htm –