ol.proj.transform 放大到 EPSG:4326
ol.proj.transform Zoomify to EPSG:4326
有没有办法从 Zoomify(具有特定的宽度和高度)转换为 [long, lat] 坐标?
我看到了文档(针对 3.6),似乎 ol.proj.transform 方法不接受 ZOOMIFY 作为 ol.proj.ProjectionLike 参数。
目前,我有一些由 LeafletJS 库保存到数据库中的标记坐标,我需要将它们投影到 [long, lat] 坐标中以使用 OpenLayer 3.6 地图显示它们。地图的图块与 Leaflet 图书馆的图块相同。
如果需要,这里是启动 ol3 地图的代码:
var proj = new ol.proj.Projection({
code: 'ZOOMIFY',
units: 'pixels',
extent: [0, 0, width, height]
}),
map = new ol.Map({
target: this.get('view').$().attr('id'),
view: new ol.View({
projection: proj,
center: [width/2, - height/2],
zoom: 1,
extent: [0, -height, width, 0]
}),
controls: []
});
......
var layer = new ol.source.Zoomify({
url: url,
size: [width, height],
crossOrigin: 'anonymous'
});
map.addLayer(layer);
此外,我用来添加标记的代码是:
pos = ol.proj.transform([posX, posY], 'ZOOMIFY', 'EPSG:4326'),
marker = new ol.Overlay({
position: pos,
positioning: 'center-center',
element: domElement,
stopEvent: false
});
map.addOverlay(marker);
我需要说明一下,我是这个框架的新手,所以任何提示都会有所帮助。
谢谢,
您似乎不需要转换坐标,因为框架知道坐标是 ZOOMIFY 格式(从地图创建,请参见上面几行)。
我用下面的代码解决了这个问题:
pos = [posX, posY],
marker = new ol.Overlay({
position: pos,
positioning: 'center-center',
element: domElement,
stopEvent: false
});
map.addOverlay(marker);
有没有办法从 Zoomify(具有特定的宽度和高度)转换为 [long, lat] 坐标? 我看到了文档(针对 3.6),似乎 ol.proj.transform 方法不接受 ZOOMIFY 作为 ol.proj.ProjectionLike 参数。
目前,我有一些由 LeafletJS 库保存到数据库中的标记坐标,我需要将它们投影到 [long, lat] 坐标中以使用 OpenLayer 3.6 地图显示它们。地图的图块与 Leaflet 图书馆的图块相同。 如果需要,这里是启动 ol3 地图的代码:
var proj = new ol.proj.Projection({
code: 'ZOOMIFY',
units: 'pixels',
extent: [0, 0, width, height]
}),
map = new ol.Map({
target: this.get('view').$().attr('id'),
view: new ol.View({
projection: proj,
center: [width/2, - height/2],
zoom: 1,
extent: [0, -height, width, 0]
}),
controls: []
});
......
var layer = new ol.source.Zoomify({
url: url,
size: [width, height],
crossOrigin: 'anonymous'
});
map.addLayer(layer);
此外,我用来添加标记的代码是:
pos = ol.proj.transform([posX, posY], 'ZOOMIFY', 'EPSG:4326'),
marker = new ol.Overlay({
position: pos,
positioning: 'center-center',
element: domElement,
stopEvent: false
});
map.addOverlay(marker);
我需要说明一下,我是这个框架的新手,所以任何提示都会有所帮助。
谢谢,
您似乎不需要转换坐标,因为框架知道坐标是 ZOOMIFY 格式(从地图创建,请参见上面几行)。
我用下面的代码解决了这个问题:
pos = [posX, posY],
marker = new ol.Overlay({
position: pos,
positioning: 'center-center',
element: domElement,
stopEvent: false
});
map.addOverlay(marker);