我正在使用 OpenLayers 使用 USGS 数据集绘制地震地图,该数据集位于:
https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson
我正在添加图层并像这样配置视图:
var map = new Map({
target: 'map',
layers: [
new TileLayer({
source: new OSM()
}),
new ImageLayer({
opacity: 0.3,
source: raster
}),
new WebGLPointsLayer({
source: new VectorSource({
url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
format: new GeoJSON(),
attributions: 'USGS'
})
})
],
view: new View({
center: fromLonLat([103.8198, 1.3521]),
zoom: 1
})
});
我的视图设置为在缩放级别 1 时,日期线包含在范围内。USGS 数据不会呈现在日期线的右侧。我知道这是因为 VectorSource 的默认范围是 [-180, -90, 180, 90]。我的问题是,如何将该范围更改为地图视图的范围,以便数据呈现在日期线的另一侧?
似乎最好的方法是截取 USGS 数据的坐标并对 lon 坐标进行转换,可能是通过ol/proj.transform或ol/proj.transformExtent,但我还没有找到 openlayers包含坐标的数据对象,也不是对它们应用地图或变换的方式。