首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ol.proj.transform放大到EPSG:4326

ol.proj.transform放大到EPSG:4326
EN

Stack Overflow用户
提问于 2015-07-06 11:57:27
回答 1查看 784关注 0票数 0

有没有办法从Zoomify (具有特定的宽度和高度)转换到长的lat坐标?我看到了文档( 3.6),而且ol.proj.transform方法似乎不接受ZOOMIFY作为ol.proj.ProjectionLike参数。

目前,我有一些标记坐标被LeafletJS库保存到数据库中,我需要将它们投影到lat长坐标中,以便用OpenLayer 3.6地图显示它们。地图上的瓷砖和传单库的瓷砖是一样的。如果需要,下面是启动ol3映射的代码:

代码语言:javascript
复制
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);

另外,我用来添加标记的代码是:

代码语言:javascript
复制
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);

我需要指出的是,对于这个框架,我是非常新的,所以任何提示都可能有帮助。

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-06 12:34:39

您似乎不需要转换坐标,因为框架知道坐标是ZOOMIFY格式(在地图创建中,请参见上面的行)。

我用以下代码解决了这个问题:

代码语言:javascript
复制
pos = [posX, posY],
marker = new ol.Overlay({
    position: pos,
    positioning: 'center-center',
    element: domElement,
    stopEvent: false
});
map.addOverlay(marker);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31245254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档