从geojson文件中的功能读取lat和long cordinates,并将其设置为地图加载时openlayers地图的中心

从geojson文件中的功能读取lat和long cordinates,并将其设置为地图加载时openlayers地图的中心,openlayers,Openlayers,我是一个新的开放层,目前面临的问题是阅读和绘图的横向和纵向的地图中心 我在geojson文件中有特性id,它是slat和slong,我可以使用var-SSlat=feature.get('sat')和var-SSlong=feature.get('slong')读取它,我在样式函数中调用它 我得到第一次执行的lat long,在完整样式函数执行结束时,varSSlong和varSSLat变得未定义。请告诉我有什么办法吗 var-SSlat; var-SSlong; var styleFuncti

我是一个新的开放层,目前面临的问题是阅读和绘图的横向和纵向的地图中心

我在geojson文件中有特性id,它是
slat
slong
,我可以使用
var-SSlat=feature.get('sat')
var-SSlong=feature.get('slong')
读取它,我在样式函数中调用它

我得到第一次执行的lat long,在完整样式函数执行结束时,var
SSlong
和var
SSLat
变得未定义。请告诉我有什么办法吗

var-SSlat;
var-SSlong;
var styleFunction=函数(特性){
SSlat=feature.get('slat');
SSlong=feature.get('slong');
};
常量映射=新映射({
图层:[
新瓦工({
资料来源:新OSM()
}),
新矢量层({
来源:新矢量源({
网址:'http://127.0.0.1:8080/abc.geojson',
交叉原点:'null',
预测:‘EPSG:3857’,
格式:new GeoJSON(),
}),
style:styleFunction
})
],
目标:“地图”,
视图:新视图({
中心:[-9752120.045132251.45],//这里添加需要从geojson文件中获取的lat和long
缩放:13
})
});

加载特征时,我会将地图置于特征几何体的中心。如果缝翼和缝翼的属性不同,您可以使用它们。您应该将源分配给变量,以便于引用

import {getCenter} from 'ol/extent.js';

let vectorSource = new VectorSource({
    url:'http://127.0.0.1:8080/abc.geojson',
    format: new GeoJSON(), 
  });

vectorSource.on('addfeature', function(e) {
  map.getView().setCenter(getCenter(e.feature.getGeometry().getExtent()));
});

const map = new Map({
  layers: [
    new TileLayer({
      source: new OSM()
    }),
    new VectorLayer({
      source: vectorSource,
      style: styleFunction
    })
  ],
  target: 'map',
  view: new View({
    center: [-9752120.04, 5132251.45],// here add lat and long which needs to be taken from geojson file
    zoom: 13
  })
});
使用特征的
slat
slong
属性居中

vectorSource.on('addfeature', function(e) {
  var SSlat = e.feature.get('slat');
  var SSlong = e.feature.get('slong');
  if (SSlat && SSlong) {
    map.getView().setCenter(fromLonLat([SSlong, SSlat]);
  }
});

如果属性是字符串,您可能需要使用
[Number(SSlong),Number(SSlat)]
谢谢mike,我在geojson文件中有数千个lat和long属性,其中slat和slog属性帮助我将地图居中,因此可以看到其他lat和long pont。请让我知道如何从上面的代码中获取它们并设置为中心,以及我需要将VectorSource.on('addfeature',function(e){map.getView().setCenter(getCenter(e.feature.getGeometry().getExtent());});在我的代码中,您的意思是数千个功能中只有一个具有
slat
slong
属性,您想查找并使用它们,还是这些功能具有不同的值,您想包括所有这些功能?几何体有数千个,slat和slong属性各有一个值。如“slat”:“1234.01477”和slong”:“-1234.89216”需要添加到地图中心,此属性是唯一的,并且仅在geojson文件内的功能中显示一次。您只能在一个点上居中,因此不能在所有点上居中。要在视图中匹配所有功能,可以使用
map.getView().fit(vectorSource.getExtent());
我只需要在一个点上居中,而不是在所有点上居中,并且该中心点存储在slat和slong中。如中心:[-123.67,34.45]。slat有-123.67,slang有34.5,请告诉我