为什么我不能更改 mapbox 文本颜色?
Why can't I change the mapbox text colours?
我想更改颜色以及使用地图框绘制的内容 API。但我似乎遇到了一个错误,我不明白我做错了什么。到目前为止 post:https://docs.mapbox.com/mapbox-gl-js/example/popup-on-hover/
这是我编写的代码:
map.addLayer({
id: 'points',
type: 'symbol',
source: 'point', // reference the data source
layout: {
'text-field': '{hospitalName}',
'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'],
'text-offset': [0, 1],
'text-anchor': 'top'
},
paint: {
'text-color': '#ffffff',
'circle-color': '#4264fb',
'circle-radius': 6,
'circle-stroke-width': 2,
'circle-stroke-color': '#ffffff'
}
});
但这是我得到的错误:
evented.js:145 错误:layers.points.paint.circle-半径:未知 属性“圆半径”
在 Object.Ui [作为 emitValidationErrors]
我确实在其他地方检查过我的 GeoGjsons 是否合规,但是否会引发错误,这似乎不是问题:
coordinates: (2) [88.3541535, 22.5396878]
type: "Point"
__proto__: Object
properties: {hospitalName: "F-------", icon: "hospital", beds: 0, comment: "----."}
type: "Feature"```
文本仅适用于符号而不适用于圆圈
代码片段:
map.addLayer({
id: 'points',
type: 'symbol',
source: 'point', // reference the data source
layout: {
'icon-size': 0.05,
'text-field': '{hospitalName}',
'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'],
'text-offset': [0, 1],
'text-anchor': 'top',
'icon-image': ['get', 'icon']
},
paint: {
'text-color': '#ffffff',
}
});
这似乎有效。如果你想使用圆圈,为什么圆圈被归类为不是符号的“绘制的东西”,在我看来,最好的想法是在 illustrator 等中自己制作它,然后使用添加图像功能将其导入。这提供了更多的灵活性,让你可以做更多的事情,比如文本、方向等,总的来说,我发现它更容易。这是 API 参考:https://docs.mapbox.com/mapbox-gl-js/example/add-image/
你需要注意的是什么是 addlayer 'type' 在这种情况下它应该是一个符号而不是点或其他任何东西。
此外,您看到我在使用符号,我收到错误的原因是圆不是符号,然后 mapbox 就混淆了。如果你想画圆
,这里是API参考
map.addLayer({
'id': 'places',
'type': 'circle',
'source': 'places',
'paint': {
'circle-color': '#4264fb',
'circle-radius': 6,
'circle-stroke-width': 2,
'circle-stroke-color': '#ffffff'
}
});
参考在这里:(不一样,但圆圈位是摘录)
https://docs.mapbox.com/mapbox-gl-js/example/popup-on-hover/
我想更改颜色以及使用地图框绘制的内容 API。但我似乎遇到了一个错误,我不明白我做错了什么。到目前为止 post:https://docs.mapbox.com/mapbox-gl-js/example/popup-on-hover/
这是我编写的代码:
map.addLayer({
id: 'points',
type: 'symbol',
source: 'point', // reference the data source
layout: {
'text-field': '{hospitalName}',
'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'],
'text-offset': [0, 1],
'text-anchor': 'top'
},
paint: {
'text-color': '#ffffff',
'circle-color': '#4264fb',
'circle-radius': 6,
'circle-stroke-width': 2,
'circle-stroke-color': '#ffffff'
}
});
但这是我得到的错误:
evented.js:145 错误:layers.points.paint.circle-半径:未知 属性“圆半径” 在 Object.Ui [作为 emitValidationErrors]
我确实在其他地方检查过我的 GeoGjsons 是否合规,但是否会引发错误,这似乎不是问题:
coordinates: (2) [88.3541535, 22.5396878]
type: "Point"
__proto__: Object
properties: {hospitalName: "F-------", icon: "hospital", beds: 0, comment: "----."}
type: "Feature"```
文本仅适用于符号而不适用于圆圈 代码片段:
map.addLayer({
id: 'points',
type: 'symbol',
source: 'point', // reference the data source
layout: {
'icon-size': 0.05,
'text-field': '{hospitalName}',
'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'],
'text-offset': [0, 1],
'text-anchor': 'top',
'icon-image': ['get', 'icon']
},
paint: {
'text-color': '#ffffff',
}
});
这似乎有效。如果你想使用圆圈,为什么圆圈被归类为不是符号的“绘制的东西”,在我看来,最好的想法是在 illustrator 等中自己制作它,然后使用添加图像功能将其导入。这提供了更多的灵活性,让你可以做更多的事情,比如文本、方向等,总的来说,我发现它更容易。这是 API 参考:https://docs.mapbox.com/mapbox-gl-js/example/add-image/
你需要注意的是什么是 addlayer 'type' 在这种情况下它应该是一个符号而不是点或其他任何东西。
此外,您看到我在使用符号,我收到错误的原因是圆不是符号,然后 mapbox 就混淆了。如果你想画圆
,这里是API参考map.addLayer({
'id': 'places',
'type': 'circle',
'source': 'places',
'paint': {
'circle-color': '#4264fb',
'circle-radius': 6,
'circle-stroke-width': 2,
'circle-stroke-color': '#ffffff'
}
});
参考在这里:(不一样,但圆圈位是摘录) https://docs.mapbox.com/mapbox-gl-js/example/popup-on-hover/