当前位置: 首页 > 知识库问答 >
问题:

如何在Openlayer 3 WMS(mapserver)中修改CRS?

廖永长
2023-03-14

我使用Openlayer3通过MapServer WMS添加光栅层。加载页面时,WMS URL中的CRS值更改为3857。

工作映射服务器URL

http://localhost/cgi-bin/mapserv.exe?map=D:\mapserver\actualimage.map

openlayer正在请求下面的URL

http://localhost/cgi-bin/mapserv.exe?map=D:\mapserver\actualimage.map

解码为

http://localhost/cgi-bin/mapserv.exe?map=D:\mapserver\actualimage.map

下面是Openlayer代码

var layers = [
            new ol.layer.Image({
                extent: [361600.51891405135,2404154.8014285564,366487.01241288986,2409041.294927395],
                source: new ol.source.ImageWMS({
                    url: encodeURI('http://localhost/cgi-bin/mapserv.exe?map=D:\\mapserver\\actualimage.map'),
                    params: {
                        'LAYERS': 'Gujarat',
                        'CRS': 'EPSG:32643',
                        'BBOX': '361600.51891405135,2404154.8014285564,366487.01241288986,2409041.294927395',
                        'WIDTH': '800',
                        'HEIGHT': '500',
                        'FORMAT': 'image/png'
                    },
                    serverType: 'mapserver',
                    projection: ol.proj.get('EPSG:32643'),
                })
            })
        ];
        var map = new ol.Map({
            layers: layers,
            target: 'map',
            view: new ol.View({
                center: [361600.51891405135, 2404154.8014285564],
                zoom: 1
            })
        });

共有1个答案

齐英朗
2023-03-14

除非您已将EPSG:32643注册为投影(例如通过使用和配置proj4js),ol。项目。get('EPSG:32643')将返回null。如果投影已正确注册,OpenLayers会将WMS层光栅重新投影到视图投影('EPSG:3857'),您可能需要,也可能不需要。

若要不进行光栅重投影,请在两个ol上配置投影:“EPSG:32643”。来源ImageWMS和您的ol。查看。还要注意,在这种情况下,视图的中心的坐标需要在`'EPSG:32643'中。

 类似资料:
  • 问题内容: 我正在尝试将我的项目目录添加到GOPATH,在Linux中,我可以这样做 在〜/ .bashrc中 Powershell中的等效性是什么 问题答案: 这应该遵循您使用Powershell设置任何Environment变量的方式(如本文所述): 如果您希望它永久存在(即将来将适用于任何外壳程序): 需要注意的一件事:当我们用来创建新的用户或计算机级环境变量时,在Windows Power

  • 问题内容: 我需要在Java中更改JSON属性的值,我可以正确获取该值,但无法修改JSON。 这是下面的代码 做这个的最好方式是什么? 问题答案: 是不可变的,旨在进行解析操作。但是,可以将其转换为允许突变的(和): 对于数组,可以使用:

  • MapServer,它是美国明尼苏达大学 (University of Minnesota, 简称 UMN)在二十世纪90 年代利用 C语言开发的开源 WebGIS项目。 【MapServer简介】 它起源于 UMN和美国国家航空航天局的合作项目ForNet,以及之后的TerrSIP项目。可以说政府的支持在MapServer前期的发展中起了很大的作 用,1994年MapServer之父Steve

  • 问题内容: 在我的Python测试脚本中,我多次使用此模式: 有没有更简洁的方法来临时修改搜索路径? 问题答案: 您可以使用一个简单的上下文管理器: 然后要导入模块,您可以执行以下操作: 从语句主体退出时,将恢复到原始状态。如果仅使用该块中的模块,则可能还希望从以下位置删除其引用:

  • 问题内容: 我正在尝试在python 2.7中编辑/修改现有的元数据。更具体而言,我在我的月历中有GPS坐标,但是海拔字段不正确。有办法改变吗? 我看过了 ,但似乎找不到修改现有字段的方法。 有没有人设法做到这一点?听起来这很简单,但我似乎无法解决。 干杯戴夫 问题答案: (550,1)%某些值以小数格式保存。这意味着550m(51,2)将为25.5m。 将高度设置为140m

  • 问题内容: 由于我需要在使用Tensorflow训练模型之前为数据编写一些预处理程序,因此需要对进行一些修改。但是,我不知道如何像使用一样修改值。 最好的方法是可以直接修改。但是,在当前版本的Tensorflow中似乎不可能。另一种方法是改变到该进程,然后用改回来。 关键是如何更改为。 1):https : //www.tensorflow.org/versions/r0.8/api_docs/p