如何在地图上显示 3s 平面中的一条线?
How to display a line in 3s plane on map?
我想在 3d 平面中显示一些线,如下图所示。
目前我正在使用 mapbox-gl-js 在我的应用程序中显示地图。
我想做的是mapbox-gl-js,但是mapbox不支持这个功能。有什么方法可以在 mapbox 中实现此功能,或者是否有支持此功能的库?
如果您想混合使用 3D 和 mapbox 自由绘制一些 3D 线条,我建议您使用最新版本的 threebox 一个 three.js mapbox 插件。
您将可以像这样绘制带有起点和终点的不同的矩形或曲线...
定义线条几何形状后,只需在页面中添加几行代码即可添加它们:
map.on('style.load', function() {
map.addLayer({
id: 'custom_layer',
type: 'custom',
renderingMode: '3d',
onAdd: function(map, mbxContext){
tb = new Threebox(
map,
mbxContext,
{defaultLights: true}
);
for (line of lines) {
var lineOptions = {
geometry: line,
color: (line[1][1]/180) * 0xffffff, // color based on latitude of endpoint
width: Math.random() + 1 // random width between 1 and 2
}
lineMesh = tb.line(lineOptions);
tb.add(lineMesh)
}
},
render: function(gl, matrix){
tb.update();
}
});
});
我想在 3d 平面中显示一些线,如下图所示。
目前我正在使用 mapbox-gl-js 在我的应用程序中显示地图。
我想做的是mapbox-gl-js,但是mapbox不支持这个功能。有什么方法可以在 mapbox 中实现此功能,或者是否有支持此功能的库?
如果您想混合使用 3D 和 mapbox 自由绘制一些 3D 线条,我建议您使用最新版本的 threebox 一个 three.js mapbox 插件。
您将可以像这样绘制带有起点和终点的不同的矩形或曲线...
定义线条几何形状后,只需在页面中添加几行代码即可添加它们:
map.on('style.load', function() {
map.addLayer({
id: 'custom_layer',
type: 'custom',
renderingMode: '3d',
onAdd: function(map, mbxContext){
tb = new Threebox(
map,
mbxContext,
{defaultLights: true}
);
for (line of lines) {
var lineOptions = {
geometry: line,
color: (line[1][1]/180) * 0xffffff, // color based on latitude of endpoint
width: Math.random() + 1 // random width between 1 and 2
}
lineMesh = tb.line(lineOptions);
tb.add(lineMesh)
}
},
render: function(gl, matrix){
tb.update();
}
});
});