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

不重新投射仓储管理系统查询

龙洛城
2023-03-14

我有一个openlayers地图在我的项目中,我想添加WMS瓷砖到它。这是我的代码:

const map = new ol.Map({
  layers: [
    new ol.layer.Tile({
      name: 'wmstiles',
      source: new ol.source.TileWMS({
        url: 'https://ssl-geowms.lillemetropole.fr/dynmapr/dynmapr.php',
        serverType: 'geoserver',
        version:"1.1.1",
        params: {
          LAYERS: 'PLU%2Fplu',
          VERSION: '1.1.1',
          TRANSPARENT: false,
          HEIGHT: 256,
          WIDTH: 256
        },
        pixelRatio: 1,
        projection: 'EPSG:2154'
      }),
      visible: false
    })
  ],
  view: new ol.View({
    center: ol.proj.fromLonLat([3.1666, 50.6167]),
    zoom: 13,
    maxZoom: 20,
  })
});

如您所见,我正在尝试将坐标投影到EPSG:2154(法国),以便将它们发送到WMS服务器。但我的地图是空白的,因为openlayers并没有生成具有良好投影的调用。

它给我带来了这个:https://ssl-geowms.lillemetropole.fr/dynmapr/dynmapr.php?SERVICE=WMS

而不是类似的内容(从另一个不使用openlayers的网站生成):https://ssl-geowms.lillemetropole.fr/dynmapr/dynmapr.php?in=PLU/plu

如您所见,它不是重新投影到EPSG:2154,而是在EPSG:3857中。还有其他问题,如高度和宽度,但这是另一回事。如果我将边界框从工作链接复制/粘贴到第一个链接,它将工作。

共有1个答案

邵阳德
2023-03-14

您的代码适用于我(在添加IN参数后)。您是否定义了投影(如果使用OpenLayers 5,则已注册)?我添加了一个半透明的OSM层来检查重投影是否正确对齐。您不需要指定平铺大小,OpenLayers将根据默认平铺网格和其他参数自动设置该大小。

proj4.defs('EPSG:2154', '+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs ');
if (ol.proj.proj4 && ol.proj.proj4.register) { ol.proj.proj4.register(proj4); }

const map = new ol.Map({
  layers: [
new ol.layer.Tile({
  name: 'wmstiles',
  source: new ol.source.TileWMS({
    url: 'https://ssl-geowms.lillemetropole.fr/dynmapr/dynmapr.php',
    serverType: 'geoserver',
    version:"1.1.1",
    params: {
      IN: "PLU/plu",
      LAYERS: 'PLU%2Fplu',
      VERSION: '1.1.1',
      TRANSPARENT: false,
    },
    pixelRatio: 1,
    projection: 'EPSG:2154',
  }),
  visible: true,
}),
new ol.layer.Tile({
    source: new ol.source.OSM(),
    opacity: 0.5
}),
  ],
  target: 'map',
  view: new ol.View({
center: ol.proj.fromLonLat([3.1666, 50.6167]),
zoom: 13,
maxZoom: 20,
  })
});
<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" type="text/css">
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.4.4/proj4.js"></script>
<div id="map" class="map"></div>
 类似资料:
  • 我正在开发一个基于OpenLayers、Geoserver、Java和JavaScript的网络应用程序。 用户需要在地图上选择一个区域,该部分必须作为图像下载。我尝试使用Ajax访问WMS- http://localhost:8080/geoserver/wms?request=GetMap 结果,我得到了除基础底图之外的所有必需图层。也有办法得到底图吗? 是否有其他方法满足此要求?

  • 我有两个服务网址像WFS和仓储管理系统下面: http://neii.bom.gov.au/services/solarclim/wms/data/monClim_dirNorExp1Hou.nc?service=WMS http://services.land.vic.gov.au/catalogue/publicproxy/guest/dv_geoserver/datavic/wfs?SERV

  • 基于ARM平台开发的 仓储安防监控系统. camera : 摄像头视频采集,JPEG压缩,YUVT转换. serial : 串口,GPRS. Lcd : 绘制字体,绘制图片,绘制摄像录像,触摸屏事件监控. lib : 数据结构库,线程池. gui : button控件,触摸屏事件监听. image : 图像C文件. init : 初始化启动程序. resource: 资源文件. socket :

  • Fabric Fabric 是一个用来简化系统管理任务的第三方库。当 Chef 和 Puppet 更倾向于管理服务器和系统库的时候,Fabric 则更关注于应用级别的任务管理,比如应用部署。 安装 Fabric: $ pip install fabric 下面的代码为我们创建了两个可以使用的任务:memory_usage 和 deploy,前面的任务会输出每一个服务器设备的内存使用率;后面的任

  • 设备和磁盘 在Linux下你的磁盘和USB设备都被看作设备。要读写它们你得先把这些设备挂载到一个文件夹(被称为挂载点)里。在Slitaz里你可以使用图形界面工具mountbox挂载设备,也可以用命令行挂载。要挂载第一个硬盘的第一个主要分区到/mnt/disk: # mkdir -p /mnt/disk # mount /dev/hda1 /mnt/disk 要挂载USB设备或者CDROM,建议使用

  • 系统管理 函数 描述 uname 得到内核的名称和信息 getpwuid 通过uid获得相应的结构体passwd getpwnam 通过用户名获得相应的结构体passwd getspnam 通过用户名获得结构体spwd(内包含密码) getgrgid 通过gid获得相应的结构体group getgrnam 通过组名获得相应的结构体group getenv 获取系统环境变量的值