我是开放层的新手,目前正面临阅读和绘制纬度以及长至地图中心的问题。
我在geojson文件中有功能ID,它是add_custom_command
和add_custom_target
,我可以使用样式函数中调用的slat
和slong
来读取它们。
我花了很长的时间来执行第一次,在完整样式函数执行结束时,变量var SSlat= feature.get('sat')
和变量var SSlong =feature.get('slong')
变得不确定。请让我知道有什么办法
SSlong
答案 0 :(得分:1)
在加载地图项时,我会将地图放在地图项的几何中心。如果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)]