精华内容
下载资源
问答
  • SuperMap iClient 6R JavaScript Rest地图与WMS地图的叠加
  • 使用netcore调用wms地图服务 核心组件是Leaflet,调用了ahocevar的geoserver服务(WMS)
  • GeoServer发布WMS地图服务后,需要请求获取 一张较大的地图图片,请求地址如下: ? 1 2 3 http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&...

    GeoServer发布WMS地图服务后,需要请求获取 一张较大的地图图片,请求地址如下:

    ?

    1

    2

    3

    http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=campus&styles=

    bbox=4.528514,4.950175,4.546676,4.958241 

    &width=7430&height=3300&srs=EPSG:4326&format=image/png 

    其中,输出的地图图片的高、宽分别为:3300、7430。

    问题一:在浏览器中地址栏中回车发送请求后,抛出以下异常,提示地图渲染超过了65536KB的大小限制:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    <pre name="code" class="html"><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--

    <serviceexceptionreport version="1.1.1">    

    <serviceexception> 

    Rendering request would use 71833KB, whilst the maximum memory allowed is 65536KB

    </serviceexception>

    </serviceexceptionreport>

    </pre>

     

    解决一:登录 GeoServer Web Admin Page 管理页面,在左侧的服务中,点击WMS,在右侧把Max rendering memory (KB)的值由65536改为了

    6553600以确保够用。重新请求即可成功。

    问题二:当继续增加请求的图片大小时(高、宽:148606600),仍然会抛出异常,请求URL和异常信息如下:

     

    <pre class="brush:py">http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=campus&styles=

    bbox=4.528514,4.950175,4.546676,4.958241 

    &width=14860&height=6600&srs=EPSG:4326&format=image/png 

    </pre>

     

    <pre class="brush:py"><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--

        

    <serviceexceptionreport version="1.1.1">    

    <serviceexception> 

          java.lang.NegativeArraySizeException 

    null 

    </serviceexception> 

    </serviceexceptionreport>

    </pre>

     

    解决二:开始菜单 >> Start GeoServer 右键属性,找到

    "C:\Program Files (x86)\GeoServer 2.5\bin\startup.bat" ,用记事本打开:

     

    <pre class="brush:py">call "C:\Program Files (x86)\Java\jdk1.8.0\bin\java.exe" -DGEOSERVER_DATA_DIR="C:\Program Files (x86)\GeoServer 2.5\data_dir" -Xmx512m -XX:MaxPermSize=128m -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -Djetty.port=8080 -Djetty.logs="C:\Program Files (x86)\GeoServer 2.5\logs" -jar "C:\Program Files (x86)\GeoServer 2.5\start.jar" 

    </pre>

     

    修改其中的  -Xmx512m -XX:MaxPermSize=128m 部分,修改如下:

     

    <pre class="brush:py">call "C:\Program Files (x86)\Java\jdk1.8.0\bin\java.exe" -DGEOSERVER_DATA_DIR="C:\Program Files (x86)\GeoServer 2.5\data_dir" -Xmx1024m -XX:MaxPermSize=512m -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -Djetty.port=8080 -Djetty.logs="C:\Program Files (x86)\GeoServer 2.5\logs" -jar "C:\Program Files (x86)\GeoServer 2.5\start.jar" 

    </pre>

     

    再次请求地图URL,问题解决。

    展开全文
  • 今天我们来学习一下关于开源地图服务GeoServer发布wms地图服务。我们这里使用的是源码版发布的地图服务,其中过程和网络上相关的GeoServer发布wms地图服务是一致的。有一点不一样的是如果想在gwc目录下找到我们放置...

    今天我们来学习一下关于开源地图服务GeoServer发布wms地图服务。我们这里使用的是源码版发布的地图服务,其中过程和网络上相关的GeoServer发布wms地图服务是一致的。有一点不一样的是如果想在gwc目录下找到我们放置的数据,需要放在如下的路径。其中shp文件是我们创建好的文件夹,里面放有我们的shapefile文件。

    那么我们来看一下一般的GeoServer是如何发布wms地图服务的。

    首先建立工作区,如下图所示。

    我们这里建立一个demo的工作区,可以勾选上【默认工作区】。

    发布地图服务需要数据,因此可以勾选数据存储,如下图所示选择【数据存储】,建立数据存储。

    选择数据源,GeoServer提供多种数据源支持。有矢量数据,栅格数据,以及其他数据。

    这里我们选择矢量数据源,建立一个为esri数据源名称的矢量数据源。

    添加好的数据源,选择好刚才建立的数据源有,即shp文件夹下面的所有shapefile将以列表的形式展示。我们选择需要发布的shapefile文件。这里我们选择LG图层,点击【发布】按钮。

    编辑要发布的图层。这里我们要注意勾选的几个选项。在发布切换选项卡下面根据矢量图层的数据类型,选项相应的数据类型。

    发布完后我们选择图层预览【Layer Preview】,如果说在刚才发布数据图层没有报错误的话,我们选择预览就可以查看到刚才发布号的图层,这里我们选择OpenLayer方式预览。

    最后在浏览器中就可以展现我们发布好的图层,如下图所示。


                                                                         更多内容,请关注公众号

                                                               

     

    展开全文
  • 旋转geoserver发布的wms地图

    千次阅读 2016-02-19 14:06:05
    以前都是以为访问geoserver发布的wms地图是不能旋转的,旋转要通过wfs的方式来访问地图。现在通过wms方式也可以使地图旋转。方法就是在正常的访问地图url后面加上&angle=XXX即可。 ...

    以前都是以为访问geoserver发布的wms地图是不能旋转的,旋转要通过wfs的方式来访问地图。现在通过wms方式也可以使地图旋转。方法就是在正常的访问地图url后面加上&angle=XXX即可。

    http://10.33.31.14:89/geoserver/parking/wms?service=WMS&version=1.1.0&request=GetMap&layers=parking:tingchewei&styles=&bbox=120.215317265679,30.210739538399,120.2168284145,30.212522340034&width=433&height=512&srs=EPSG:4326&format=application/openlayers&angle=200

    上面的链接就是让地图旋转200的链接。

    展开全文
  • GeoServer发布WMS地图服务2. Mapbox GL 加载WMS source3. WMS地图服务点击查询4. 完整代码5. 参考文档 1. GeoServer发布WMS地图服务 GeoServer发布地图服务的常规操作: 创建工作区 添加新的数据存储 添加新的图层...

    1. GeoServer发布WMS地图服务

    GeoServer发布地图服务的常规操作:

    1. 创建工作区
    2. 添加新的数据存储
    3. 添加新的图层

    不会的可自行在网上搜索,此处不再赘述。需要注意以下几点:

    1. 添加新的数据存储时,需要注意属性表数据的编码格式,如果包含中文字符,需要选择GB2312或者GBK
      在这里插入图片描述
    2. 添加新的图层时,需要正确定义待发布图层的坐标系,此处强制将坐标系设为Mapbox GL支持的EPSG:3857(Web墨卡托)坐标系。设置正确与否,可通过边框的范围(最大最小XY的值)来确定。
      在这里插入图片描述
    3. 在Layer Preview中点击对应图层的Openlayers按钮,判断图层是否正常发布。
      在这里插入图片描述
      在这里插入图片描述

    2. Mapbox GL 加载WMS source

    map.addSource('wms-source', {
      'type': 'raster',
      'tiles': [
        'http://localhost:8080/geoserver/webgis/wms?service=WMS&version=1.1.0&request=GetMap&layers=webgis:province&styles=&bbox={bbox-epsg-3857}&width=768&height=553&srs=EPSG:3857&format=image/png&TRANSPARENT=TRUE',
      ],
      'tileSize': 256
    });
    map.addLayer({
        'id': 'wms-layer',
        'type': 'raster',
        'source': 'wms-source',
        'paint': {
          'raster-opacity': 0.3
        }
      },
      'aeroway-line'
    );
    
    1. 实现方法可参考官方文档。在点击Openlayers预览图层时,打开调试工具,点击NetWork可获取tiles的url,需要将bbox参数用{bbox-epsg-3857}替换。加载的时候,Mapbox GL会自动替换成对应的参数,这样地图就可以加载了。
      在这里插入图片描述
      在这里插入图片描述
    2. 通过图层的paint属性可以调整raster类型数据的样式,此处不再赘述。

    3. WMS地图服务点击查询

    map.on("click", function (e) {
      const zoom = map.getZoom();
      const value = Math.pow(2, 22 - zoom);
      const { lng, lat } = e.lngLat;
      const center = wgs84ToMercator(lng, lat);
      const min = [center.x - value, center.y - value];
      const max = [center.x + value, center.y + value];
      // 查询WMS要素属性
      axios.get(
          `http://localhost:8080/geoserver/webgis/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=webgis%3Aprovince&STYLES&LAYERS=webgis%3Aprovince&exceptions=application%2Fvnd.ogc.se_inimage&INFO_FORMAT=application/json&FEATURE_COUNT=50&X=50&Y=50&SRS=EPSG%3A3857&WIDTH=101&HEIGHT=101&BBOX=${min[0]},${min[1]},${max[0]},${max[1]}`
        )
        .then(function (response) {
          console.log(response);
        })
        .catch(function (error) {
          console.log(error);
        })
        .finally(function () {});
    });
    // 经纬度转墨卡托
    function wgs84ToMercator(lng, lat) {
      lng = parseFloat(lng);
      lat = parseFloat(lat);
      var d = Math.PI / 180,
        max = 90,
        lat = Math.max(Math.min(max, lat), -max),
        sin = Math.sin(lat * d);
      var x = 6378137 * lng * d;
      var y = 6378137 * Math.log((1 + sin) / (1 - sin)) / 2;
      return {
        x,
        y
      };
    };
    
    1. 在点击Openlayers预览图层时,打开调试工具,点击查询图层要素,NetWork中会出现一个请求url,而axios请求的url只需将INFO_FORMAT参数由text/html替换成application/json即可,获取到json数据后,可根据实际进行下一步操作。
      在这里插入图片描述
    2. bbox需要根据点击时的坐标换算,需要注意的是点击返回的坐标是经纬度,需要转换成EPSG:3857坐标系。
      在这里插入图片描述

    4. 完整代码

    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8" />
      <title>Add a WMS source and query</title>
      <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
      <script src="https://api.mapbox.com/mapbox-gl-js/v2.1.0/mapbox-gl.js"></script>
      <link href="https://api.mapbox.com/mapbox-gl-js/v2.1.0/mapbox-gl.css" rel="stylesheet" />
      <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.19.2/axios.js"></script>
      <script src='https://unpkg.com/@turf/turf@6.3.0/turf.min.js'></script>
      <style>
        body {
          margin: 0;
          padding: 0;
        }
    
        #map {
          position: absolute;
          top: 0;
          bottom: 0;
          width: 100%;
        }
      </style>
    </head>
    
    <body>
      <div id="map"></div>
      <script>
        mapboxgl.accessToken = 'your accessToken';
        var map = new mapboxgl.Map({
          container: 'map',
          style: 'mapbox://styles/mapbox/light-v10',
          zoom: 4,
          center: [112, 28]
        });
    
        map.on('load', function () {
          map.addSource('wms-source', {
            'type': 'raster',
            'tiles': [
              'http://localhost:8080/geoserver/webgis/wms?service=WMS&version=1.1.0&request=GetMap&layers=webgis:province&styles=&bbox={bbox-epsg-3857}&width=768&height=553&srs=EPSG:3857&format=image/png&TRANSPARENT=TRUE',
            ],
            'tileSize': 256
          });
          map.addLayer({
              'id': 'wms-layer',
              'type': 'raster',
              'source': 'wms-source',
              'paint': {
                'raster-opacity': 0.3
              }
            },
            'aeroway-line'
          );
        });
    
        map.on("click", function (e) {
          const {
            lng,
            lat
          } = e.lngLat;
          const radius = Math.pow(2, 22 - map.getZoom());
          const pointM = turf.toMercator(turf.point([lng, lat]));
          const pointC = pointM.geometry.coordinates;
          const bbox = [pointC[0] - radius, pointC[1] - radius, pointC[0] + radius, pointC[1] + radius];
          const url =
            'http://localhost:8080/geoserver/webgis/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=webgis%3Aprovince&STYLES&LAYERS=webgis%3Aprovince&exceptions=application%2Fvnd.ogc.se_inimage&INFO_FORMAT=application/json&FEATURE_COUNT=50&X=50&Y=50&SRS=EPSG%3A3857&WIDTH=101&HEIGHT=101&BBOX=' +
            bbox.join();
          axios.get(url)
            .then(function (res) {
              console.log(res);
            })
        });
      </script>
    
    </body>
    
    </html>
    

    5. 参考文档

    Add a WMS source
    MapBox加载GeoServer发布的WMS地图服务
    mapbox 添加geoserver发布的wms服务及wms服务属性查询

    展开全文
  • 以前都是以为访问geoserver发布的wms地图是不能旋转的,旋转要通过wfs的方式来访问地图。现在通过wms方式也可以使地图旋转。方法就是在正常的访问地图url后面加上&angle=XXX即可。 ...version=1.1.0&...
  • html版本Leaflet调用地图 主要使用Leaflet调用ahocevar的geoserver wms服务
  • 1、发布WMS地图服务  在发布地图服务的时候勾选WMS复选框。 2、ArcGIS JS API调用ArcMap发布的WMS  核心代码: esriConfig.defaults.io.proxyUrl = 'http://127.0.0.1/ArcGISProxy/proxy.ashx'; ...
  • MapBox加载GeoServer发布的WMS地图服务

    千次阅读 2019-03-08 16:17:48
    使用MapBox加载GeoServer发布的WMS地图服务,测试一下成功,但是发现好像不支持4326坐标系,只支持3857坐标系,最终没有找到怎么加载4326坐标系的WMS服务。加载代码如下: &lt;!DOCTYPE html&gt; &lt;...
  • 应用需求:GeoServer发布WMS地图服务后,需要请求获取一张较大的地图图片,请求地址如下: [plain]view plaincopyprint? http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=...
  • 首先我们这里使用的是geoserver发布的wms地图服务,至于如何发布的,可以参考相关的资料。不过需要注意的是,cesium只支持epsg为3857和4326的投影,即web墨卡托投影和wgs84地理坐标。当然,我自己也没有测试过其他的...
  • OpenLayers 读取 WMS 服务与OpenLayers 读取 GeoServer 发布的地图服务 类似 二、代码 本次 Demo 主要介绍读取 GeoServer 发布的 WMS 地图服务,并且绘制矢量 <template> <div> <div id="map" ...
  • 数据是GIS的核心,没有数据一切无从谈起,Internet上有很多在线WMS地图服务资源,我们可以好好利用这些数据资源,比如天地图、必应地图、NASA、OGC数据服务等等。 在我们国家常用的还是天地图的地图服务资源,详见:...
  • 数据是GIS的核心,没有数据一切无从谈起,Internet上有很多在线WMS地图服务资源,我们可以好好利用这些数据资源,比如天地图、必应地图、NASA、OGC数据服务等等。 在我们国家常用的还是天地图的地图服务资源,详见...
  • 首先说明一下,这篇文章讲解的是WMS地图,不是WMTS地图,讲的不是瓦片索引计算方法与坐标转换。朋友们在动手之前需要申请好腾讯的开发密钥以及百度的开发密钥,在局域网中搭建好GeoServer服务器。百度的开发密钥不...
  • 使用ArcGISAPI for JS4.7加载ArcGIS Server发布的REST和WMS地图服务,ArcGIS Server为本机安装,需要提前完成跨域设置。 代码如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; ...
  • ArcEngine调用GeoServer中的WMS地图服务

    千次阅读 2010-08-13 14:25:00
    ArcEngine是可以连接ArcIMS、ArcServer及WMS等地图服务的,而开源GeoServeer提供了高效、高质量的WMS地图服务。用瓦片缓存的WMS地图服务作为ArcEngine地图的底图,则大大提高了地图放大、缩小、漫游等地图操作。...
  • Openlayers4加载WMS地图

    千次阅读 2018-12-13 21:25:02
    ol4加载地图最基本的方法 准备工作 1、shp文件 2、geoserver发布图层 var map,wmsLayer; function initMap(){ wmsLayer = new ol.layer.Tile({ source: new ol.source.TileWMS({ url: &amp;amp;amp;amp;quot;...
  • IPropertySet pPropertSet = new PropertySetClass(); pPropertSet.SetProperty("url", url);//wms的服务地址 pPropertSet.SetPro...
  • 什么是WMS服务 ...WMS 通过具有地理空间信息的数据制作地图,在国际规范中,地图(map)被定义为地理数据的可视化表现,WMS 返回的地图并非地图数据,而是地图图像,格式类型可以是 PNG、GIF、...
  • [code="url"...SERVICE=WMS &VERSION=1.1.1 &LAYERS=masmap &STYLES= &FORMAT=image/png &BGCOLOR=0xD6EAB3 &TRANSPARENT=FALSE &SRS=EPSG:4326 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 995
精华内容 398
关键字:

wms地图