我是传单/mapbox的新手,我正在努力研究如何将自定义样式应用于地图。
我按照这里的指示(https://leafletjs.com/examples/quick-start/)并且可以用英语展示地图。
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
maxZoom: 18,
id: 'mapbox/streets-v11',
tileSize: 512,
zoomOffset: -1,
accessToken: 'your.mapbox.access.token'
}).addTo(mymap);
现在我打算把语言改成日语。为此,我去了mapbox工作室,并参考了这条指示创建了自己的风格(https://docs.mapbox.com/help/troubleshooting/change-language/)。现在我有了自己的风格URL(mapbox://styles/[username]/[mystyleid](,并准备用日语设置地图。
这里的问题是如何在映射的初始化过程中实际应用样式URL。我在堆栈溢出中查看了过去的文章,并尝试了几个代码,但都没有成功。请参阅下面我尝试过的内容:
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
maxZoom: 18,
id: 'mapbox/streets-v11',
tileSize: 512,
zoomOffset: -1,
accessToken: 'your.mapbox.access.token'
}).styleLayer('mapbox://styles/[username]/[mystyleid]').addTo(mymap);
错误消息为"L.tileLayer(…(.styleLayer不是函数"。我也尝试过以下操作,但说"TypeError:L.map(…(.setView(…(.styleLayer不是函数"无效
var mymap = L.map('mapid').setView([51.505, -0.09], 13).styleLayer('mapbox://styles/mapbox://styles/[username]/[mystyleid]');
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
maxZoom: 18,
id: 'mapbox/streets-v11',
tileSize: 512,
zoomOffset: -1,
accessToken: 'your.mapbox.access.token'
}).addTo(mymap);
有人能告诉我将我自己的风格URL应用到tileLayer的确切代码吗?
提前谢谢。
传单不支持styleLayer
功能
我认为你必须使用你的id,而不是默认的mapbox id:
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
L.tileLayer('https://api.mapbox.com/styles/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
maxZoom: 18,
id: '[username]/[mystyleid]',
tileSize: 512,
zoomOffset: -1,
accessToken: 'your.mapbox.access.token'
}).addTo(mymap);