Я бы центрировал карту по геометрии объекта, когда объект загружен.Если свойства slat и slong были разными и предпочтительными, вы можете использовать их вместо этого.Вы должны присвоить свой источник переменной, чтобы было легче ссылаться.
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)]
, если свойство является строкой