0

这是场景:

我有一个用 VectorTileSource 构建的 VectorTileLayer

    this.vectorTileSource = new VectorTileSource({
      format: new GeoJSON(),
      url: 'http://localhost:8090/geoserver/smartzone/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=work:name&outputFormat=application/json'
    });

this.vtLayer = new VectorTileLayer({
  declutter: true,
  source: this.vectorTileSource,
  style:someStyle
});

现在我想在地图上显示图层:

this.map = new Map({
  target: this.viewMap.nativeElement,
  overlays: [this.overlay],
  layers: this.vtLayer,
  view: new View({
    center: ???
    zoom: 10.2
  })
});

???- 我如何获得中心的坐标(纬度/经度)?手动我可以从 GeoServer UI 中的图层属性中获取它们

在此处输入图像描述

但我需要使用 OpenLayers 脚本以某种方式抓住它......

4

2 回答 2

0

这是它的完成方式:

//we do it on change event for the vector source
    this.wfsVectorSource.on('change', (evt)=>{
      var source=evt.target;
      if(source.getState() === 'ready'){ //then when its ready
          this.map.getView().fit(source.getExtent(), this.map.getSize() as any);
          //source.getExtent() gets you coordinates for the layer
      }
    });
于 2019-10-24T17:13:56.820 回答
0

你可以问

layer.getExtent().getCenter()
于 2019-10-24T08:21:42.363 回答