OpenLayers 6 + Angular 8:LineString没有显示在矢量层上(JS没有错误)

我遇到一个问题,我的Linestring没有显示在地图上,并且控制台没有发出任何错误。

我相信我的代码是正确的,但是在OpenLayers方面我并不聪明,我可能是错的。

这就是我将矢量图层添加到地图的方式

var vectorLayer = new ol.layer.Vector({
      name: 'trailLayer',type: "Vector",source: new ol.source.Vector({ format: new ol.format.GeoJSON({ featureProjection:"EPSG:3857" }) }),zoomMin: 8,zoomMax: 18
    });

    this.map.addLayer(vectorLayer);

这是我要做的添加新Linestring的操作

let layer;
this.map.getLayers().forEach(function (value) { if ( value.get('name') === 'trailLayer') { layer = value; } });
if(layer == null) { return; }

let coords = [[latA,lonA],[latB,lonB]];
let linestring = new ol.geom.Linestring(coords);
linestring.transform('EPSG:4326','EPSG:3857');

var lineFeature = new ol.Feature({
    name: callsign,});

lineFeature.setGeometry(linestring);


var linestyle = new ol.style.Style({
    stroke: new ol.style.Stroke({
        width: trailWidth,color: trailColor
    })
});

lineFeature.setStyle(linestyle);

layer.getsource().addFeature(lineFeature);

如果我尝试使用source.GetFeatures(),它将正确显示我的所有功能,但在地图上看不到它们。

我想念什么吗?

P.S。每个变量分配正确,没有奇怪,也没有未定义的ecc ...

bduxxl 回答:OpenLayers 6 + Angular 8:LineString没有显示在矢量层上(JS没有错误)

在OL中,坐标必须首先为expressed作为经度,然后是纬度。

尝试交换坐标:

let coords = [[lonA,latA],[lonB,latB]];
本文链接:https://www.f2er.com/3096350.html

大家都在问