【发布时间】:2014-01-06 09:48:15
【问题描述】:
我有一张带有 openlayers 3 和矢量图层的地图。 我想将地图调整为该矢量图层的大小,但到目前为止,我所能得到的只是将地图集中在该矢量的最后一个点上,因为在创建地图时无法访问矢量图层的点:
if (trackMap != null) {
for (var i = 0; i < trackMap.length; i++) {
var trackInfo = trackMap[i];
lat = parseFloat(trackInfo.lat);
lon = parseFloat(trackInfo.lon);
var layergpx = new ol.layer.Vector({
source: new ol.source.Vector({
parser: new ol.parser.GPX(),
url: '${contextRoot}/gps/gpx2' + trackInfo.url
})
});
layers.push(layergpx);
vectorLayers.push(layergpx);
}
}
map = new ol.Map({
controls: ol.control.defaults().extend([
new ol.control.FullScreen()
]),
layers: layers,
renderer: ol.RendererHint.CANVAS,
target: 'map',
view: new ol.View2D({
center: ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857'),
zoom: 13
})
});
【问题讨论】:
-
您想要调整地图大小或放大地图吗?在 View2D 中尝试 FitExtent
-
放大。我试过 FitToExtend,但问题是,调用 FitToExtend 时没有加载轨道
-
扩展必须与地图在同一坐标系中。地图、图层和扩展的坐标系是哪个?
-
是的。我尝试了一些由其他人发布的东西,他有一个计数器,它等到所有图层都加载完毕,然后缩放到一定程度,但这很不稳定。 gis.stackexchange.com/questions/31323/…
-
您不能从服务器端获取扩展并使用该扩展启动地图吗?