当前位置:   article > 正文

Cesium笔记 加载GeoServer服务,以及跨域问题_cesium.webmapserviceimageryprovider服务跨域

cesium.webmapserviceimageryprovider服务跨域

一、加载如下的GeoServer发布地图服务

加载代码如下,其中url为红线框选部分,layers为发布的图层NAME

  1. //加载GeoServer图层,测试数据
  2. ShowTestData() {
  3. var layer = new Cesium.WebMapServiceImageryProvider({
  4. url: 'url',
  5. layers: 'pipelineGIS:YCYSZYSZYG',
  6. parameters: {
  7. service: 'WMS',
  8. format: 'image/png',
  9. transparent: true,
  10. }
  11. });
  12. viewer.imageryLayers.addImageryProvider(layer);
  13. },

此时即为加载Geoserver服务成功,不过我在加载的时候,遇到如下的跨域问题

解决方法如下:

如果你的Chrome版本为49之前的,则在关闭所有网页,在Chrome桌面快捷方式,右键属性,目标 后添加 空格+--disable-web-security   

如果版本为49之后,快捷方式,右键属性,目标后添加    空格+--disable-web-security --user-data-dir=C:\ChromeUseData  其中C:\ChromeUseData为自己创建的文件夹

例如:"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir=C:\ChromeUseData

重新打开浏览器,出现如下,则证明成功

后续补充:用上述方法解决跨域问题只能自己本机可以访问,如果项目部署,也不可能去给每个机子得浏览器改设置,,所以还是需要其他方法。

首先下载下面两个包,放在./geoserver\WEB-INF\lib目录下 

下载地址:https://download.csdn.net/download/qq_40216244/12927072

然后再./geoserver\WEB-INF中得web.xml文件添加以下代码

  1. <filter>
  2. <filter-name>CORS</filter-name>
  3. <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
  4. <init-param>
  5. <param-name>cors.tagRequests</param-name>
  6. <param-value>true</param-value>
  7. </init-param>
  8. </filter>
  9. <filter-mapping>
  10. <filter-name>CORS</filter-name>
  11. <url-pattern>/*</url-pattern>
  12. </filter-mapping>

最后再重启Tomcat,以及Geoserver即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/564066
推荐阅读
相关标签
  

闽ICP备14008679号