Openlayers 如何获取GPX文件的范围以在地图上显示它(使用openalyers)

Openlayers 如何获取GPX文件的范围以在地图上显示它(使用openalyers),openlayers,openlayers-5,Openlayers,Openlayers 5,我正在研究openlayers 5.x的GPX源代码示例,可在 我能够成功加载我的GPX文件并将其显示在地图上,但我无法获取其范围,以了解最小/最大纬度和经度,以便在地图上动态拟合它 这是我的代码(与示例相同): GPX文件显示正确,但我无法获取其范围来调整地图大小以进行缩放。我试过: console.log(GpxVector.getSource().getFeatures()); 它不提供要分析的功能: length: 0 __proto__: Array(0) 请注意,源在那里,并在地

我正在研究openlayers 5.x的GPX源代码示例,可在

我能够成功加载我的GPX文件并将其显示在地图上,但我无法获取其范围,以了解最小/最大纬度和经度,以便在地图上动态拟合它

这是我的代码(与示例相同):

GPX文件显示正确,但我无法获取其范围来调整地图大小以进行缩放。我试过:

console.log(GpxVector.getSource().getFeatures());
它不提供要分析的功能:

length: 0
__proto__: Array(0)
请注意,源在那里,并在地图上正确显示:

console.log(GpxVector.getSource());
给出:

c {disposed_: false, pendingRemovals_: {…}, dispatching_: {…}, listeners_: {…}, revision_: 0, …}
[Infinity, Infinity, -Infinity, -Infinity]
undefined
但没有范围:

console.log(GpxVector.getSource().getExtent());
console.log(GpxVector.getExtent());
给出:

c {disposed_: false, pendingRemovals_: {…}, dispatching_: {…}, listeners_: {…}, revision_: 0, …}
[Infinity, Infinity, -Infinity, -Infinity]
undefined
矢量层也没有范围:

console.log(GpxVector.getSource().getExtent());
console.log(GpxVector.getExtent());
给出:

c {disposed_: false, pendingRemovals_: {…}, dispatching_: {…}, listeners_: {…}, revision_: 0, …}
[Infinity, Infinity, -Infinity, -Infinity]
undefined
有人能帮助我,告诉我如何访问GPX文件的范围或至少它的点,以便我自己计算它吗


任何帮助都将不胜感激

除非图层在地图上可见,否则不会加载源。如果设置任意洞口中心并在视图中进行缩放,则将加载源,然后可以调整:

  // fit when the source loads
  GpxVector.getSource().on('addfeature', function(){
      map.getView().fit(GpxVector.getSource().getExtent());
  });

  // open the view to force a load
  map.getView().setCenter([0, 0]);
  map.getView().setZoom(0);

伟大的它工作得非常好,非常感谢,我被困在上面至少5个小时了!