Mapbox gl js-绘制汽车标记

Mapbox gl js-绘制汽车标记,mapbox,mapbox-gl-js,Mapbox,Mapbox Gl Js,我需要根据它的位置画一个汽车标记。但是,和所有官方示例不同,比如,我希望标记的大小取决于缩放级别。而且,我希望它也有航向-我需要根据汽车的航向旋转它。Mapbox GL JS是否有可能,以及如何实现这一点?符号层最适合于此,请参见此示例,符号层最适合于此,请参见此示例,Mapbox API自2018年以来一直在发展,现在您可以用一种稍微简单的方式来实现: 首先,扩展Marker类,以允许访问private\u rotation属性: /*eslint禁用*/ 从“mapbox gl”导入{Mar

我需要根据它的位置画一个汽车标记。但是,和所有官方示例不同,比如,我希望标记的大小取决于缩放级别。而且,我希望它也有航向-我需要根据汽车的航向旋转它。Mapbox GL JS是否有可能,以及如何实现这一点?

符号层最适合于此,请参见此示例,符号层最适合于此,请参见此示例,Mapbox API自2018年以来一直在发展,现在您可以用一种稍微简单的方式来实现:

首先,扩展Marker类,以允许访问private
\u rotation
属性:

/*eslint禁用*/
从“mapbox gl”导入{Marker,MarkerOptions};
导出类RotatedMarker扩展标记{
构造函数(选项?:标记选项){
超级(期权);
}
/**
*设置元素的旋转角度。
*@参数角度(以度为单位)
*/
设置旋转(角度:编号):此{
//@ts忽略
这个。_旋转=角度;
归还这个;
}
}
然后在更新lat/lng之前,只需调用
setRotation

const myMarker=new RotatedMarker({
元素:你做的东西,
主播:'中',
旋转:123,//以度为单位
旋转对齐:“地图”,
});
//当你想旋转你的标记时,把这个叫做(两者都叫做,我很确定
//仅通过调用setRotation,标记不会旋转。
myMarker.setRotation(cssHeading)
.setLngLat(心皮位置);

这段代码是TypeScript,但如果您删除了打字,它也可以在Vanilla JS中工作。

Mapbox API自2018年以来一直在发展,现在您可以用一种稍微简单一点的方式来完成:

首先,扩展Marker类,以允许访问private
\u rotation
属性:

/*eslint禁用*/
从“mapbox gl”导入{Marker,MarkerOptions};
导出类RotatedMarker扩展标记{
构造函数(选项?:标记选项){
超级(期权);
}
/**
*设置元素的旋转角度。
*@参数角度(以度为单位)
*/
设置旋转(角度:编号):此{
//@ts忽略
这个。_旋转=角度;
归还这个;
}
}
然后在更新lat/lng之前,只需调用
setRotation

const myMarker=new RotatedMarker({
元素:你做的东西,
主播:'中',
旋转:123,//以度为单位
旋转对齐:“地图”,
});
//当你想旋转你的标记时,把这个叫做(两者都叫做,我很确定
//仅通过调用setRotation,标记不会旋转。
myMarker.setRotation(cssHeading)
.setLngLat(心皮位置);

这段代码是TypeScript,但是如果你删除了打字,它也可以在Vanilla JS中使用。

谢谢,确实,这可以旋转,但是放大和缩小如何?你可以使用
图标大小来更改符号的大小。
属性:谢谢,确实可以旋转,但是放大和缩小如何?你可以使用e
图标大小
属性: