添加我自己的样式在 MapBox 中不起作用 Javascript
Adding my own style is not working in MapBox Javascript
在上一个问题中,有人问过关于地图样式的图像叠加:
我得到了他们的例子,但我想使用我自己的风格。
这是 link 到 my map style。
这是他们使用的有效样式:
mapbox://styles/mapbox/satellite-v9
这是我的风格,行不通:
mapbox://styles/nittyjee/ck0fasve30an21cpalmwct518
下面是有效的代码,您可以自己运行。我的风格被注释掉了。
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>Add an image</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.45.0/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.45.0/mapbox-gl.css' rel='stylesheet' />
<style>
body {
margin: 0;
padding: 0;
}
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
</style>
</head>
<body>
<div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1Ijoibml0dHlqZWUiLCJhIjoid1RmLXpycyJ9.NFk875-Fe6hoRCkGciG8yQ';
var map = new mapboxgl.Map({
container: 'map',
maxZoom: 5.99,
minZoom: 4,
zoom: 5,
center: [-75.789, 41.874],
//Style from Stack Overflow:
style: 'mapbox://styles/mapbox/satellite-v9'
//My style does not work:
//style: 'mapbox://styles/nittyjee/ck0fasve30an21cpalmwct518'
});
map.on('load', function() {
map.addSource("myImageSource", {
"type": "image",
"url": "https://docs.mapbox.com/mapbox-gl-js/assets/radar.gif",
"coordinates": [
[-80.425, 46.437],
[-71.516, 46.437],
[-71.516, 37.936],
[-80.425, 37.936]
]
});
map.addLayer({
"id": "overlay",
"source": "myImageSource",
"type": "raster",
"paint": {
"raster-opacity": 0.85
}
});
});
</script>
</body>
</html>
这看起来不像是一种风格URLhttps://docs.mapbox.com/help/glossary/style-url/
您需要在 Mapbox Studio 中创建样式并获取样式 ID。
当您在 Studio 中查看您的风格时,您可以单击右上角的 Share
。
然后从那里,您应该会看到一个面板,其中有一个名为 Your style url
的部分。如果您复制 link 并将其粘贴到您的代码中,您的样式应该会出现。
您也可以点击您的风格旁边的 3 个点,然后复制出现的面板底部的风格 ID:
您需要升级 mapbox-gl 版本。您使用的是旧版 SDK。
将您的 script/css 定义更改为:
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v1.3.1/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.3.1/mapbox-gl.css' rel='stylesheet' />
在上一个问题中,有人问过关于地图样式的图像叠加:
我得到了他们的例子,但我想使用我自己的风格。
这是 link 到 my map style。
这是他们使用的有效样式:
mapbox://styles/mapbox/satellite-v9
这是我的风格,行不通:
mapbox://styles/nittyjee/ck0fasve30an21cpalmwct518
下面是有效的代码,您可以自己运行。我的风格被注释掉了。
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>Add an image</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.45.0/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.45.0/mapbox-gl.css' rel='stylesheet' />
<style>
body {
margin: 0;
padding: 0;
}
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
</style>
</head>
<body>
<div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1Ijoibml0dHlqZWUiLCJhIjoid1RmLXpycyJ9.NFk875-Fe6hoRCkGciG8yQ';
var map = new mapboxgl.Map({
container: 'map',
maxZoom: 5.99,
minZoom: 4,
zoom: 5,
center: [-75.789, 41.874],
//Style from Stack Overflow:
style: 'mapbox://styles/mapbox/satellite-v9'
//My style does not work:
//style: 'mapbox://styles/nittyjee/ck0fasve30an21cpalmwct518'
});
map.on('load', function() {
map.addSource("myImageSource", {
"type": "image",
"url": "https://docs.mapbox.com/mapbox-gl-js/assets/radar.gif",
"coordinates": [
[-80.425, 46.437],
[-71.516, 46.437],
[-71.516, 37.936],
[-80.425, 37.936]
]
});
map.addLayer({
"id": "overlay",
"source": "myImageSource",
"type": "raster",
"paint": {
"raster-opacity": 0.85
}
});
});
</script>
</body>
</html>
这看起来不像是一种风格URLhttps://docs.mapbox.com/help/glossary/style-url/
您需要在 Mapbox Studio 中创建样式并获取样式 ID。
当您在 Studio 中查看您的风格时,您可以单击右上角的 Share
。
然后从那里,您应该会看到一个面板,其中有一个名为 Your style url
的部分。如果您复制 link 并将其粘贴到您的代码中,您的样式应该会出现。
您也可以点击您的风格旁边的 3 个点,然后复制出现的面板底部的风格 ID:
您需要升级 mapbox-gl 版本。您使用的是旧版 SDK。
将您的 script/css 定义更改为:
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v1.3.1/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.3.1/mapbox-gl.css' rel='stylesheet' />