在JAVA中添加openlayer3的js包制作地图,使用geoserver发布地图,将发布的地图连接到网页中
来源:互联网 发布:董小飒dw淘宝 编辑:程序博客网 时间:2024/06/07 23:26
1 首先下载OpenLayers 3所需资料
OpenLayers 3的官网是http://openlayers.org/,若记不住,请保存到收藏夹。在官网首页上,即可看到相关的介绍,文档,API,以及Examples链接,这些资料都跟随最新的版本实时更新。
向工程中添加
新建html文件
在head中引用openlayer js包
可使用相对路径
<head> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"> <meta content=always name=referrer> <title>OpenLayers 3地图示例</title> <link href="../ol.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="../ol-debug.js" charset="utf-8"></script></head>
也可以直接找到官网链接
<head> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"> <meta content=always name=referrer> <title>OpenLayers 3地图示例</title> <link rel="stylesheet" href="https://openlayers.org/en/v3.12.1/css/ol.css" type="text/css"> <script src="https://openlayers.org/en/v3.12.1/build/ol.js"></script><charset="utf-8"></script></head>
注意以上两个head 的 link和script区别
2Geoserver
到此处下载并学习使用geoserver
下载后解压到得到war文件:geoserver.war,把该文件放置到tomcat目录下的webapps目录下,比如放置该文件后,我的路径为:F:\apache-tomcat-8.5.4\webapps\geoserver.war。
然后在命令行终端启动tomcat,可能需要稍微等待一下,因为要部署geoserver,待tomcat命令行终端启动完成,就可以打开浏览器输入http://localhost:8080/geoserver打开geoserver的管理页面
跨域配置
找到geoserver的web.xml文件,我的电脑对应的路径为F:\apache-tomcat-8.5.4\webapps\geoserver\WEB-INF\web.xml
打开该文件,把下面的配置添加在该文件中:
<filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
跨越配置用于在html文件中引用我们发布的地图的url,若不配置无法显示
发布地图的简单操作
1.新建一个Workspaces
2.新建一个stores,可以连接shp文件和数据库等,此处选用数据库为例
3.发布一个layer
4.预览
编写程序
<!Doctype html><html xmlns=http://www.w3.org/1999/xhtml><head> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"> <meta content=always name=referrer> <title>OpenLayers 3地图示例</title> <link rel="stylesheet" href="https://openlayers.org/en/v3.12.1/css/ol.css" type="text/css"> <script src="https://openlayers.org/en/v3.12.1/build/ol.js"></script><charset="utf-8"></script></head><body> <div id="map" style="width:100%;height:100%;"></div> <script> var vector1 = new ol.layer.Vector({ source: new ol.source.Vector({ format: new ol.format.GeoJSON(), url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=superpower:pe_tobj_roadline&outputFormat=application/json&srsname=EPSG:4326' }), style: function(feature, resolution) { return new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'blue', width: 5 }) }); } }); var vector2 = new ol.layer.Vector({ source: new ol.source.Vector({ format: new ol.format.GeoJSON(), url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=superpower:xiacheng&outputFormat=application/json&srsname=EPSG:4326' }), style: function(feature, resolution) { return new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'red', width: 5 }) }); } }); var vector3 = new ol.layer.Vector({ source: new ol.source.Vector({ format: new ol.format.GeoJSON(), url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=superpower:map&outputFormat=application/json&srsname=EPSG:4326' }), style: function(feature, resolution) { return new ol.style.Style({ image: new ol.style.Circle({ radius: 3, fill: new ol.style.Fill({ color: 'green' }), stroke: new ol.style.Stroke({ color: 'green', width: 10 }) }) }); } }); var vector4 = new ol.layer.Vector({ source: new ol.source.Vector({ format: new ol.format.GeoJSON(), url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=topp:tasmania_state_boundaries&outputFormat=application/json&srsname=EPSG:4326' }), style: function(feature, resolution) { return new ol.style.Style({ fill:new ol.style.Fill({ color: 'yellow' }), stroke: new ol.style.Stroke({ color: 'red', width: 5 }), }); } }); var map = new ol.Map({ layers: [new ol.layer.Tile({ source: new ol.source.OSM() }), vector1,vector2,vector3,vector4], target: 'map', view: new ol.View({ center: [-73.99710639567148, 40.742270050255556], maxZoom: 19, zoom: 14, projection: 'EPSG:4326' }) }); </script></body></html></body></html>
openlayer3语法 自行在官网学习
此处有一个要点,url连接的命名规则如下
http://localhost:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=nyc_roads:nyc_roads&outputFormat=application/json&srsname=EPSG:4326
以上述程序为例
作如下修改即可
最终的网页结果
网差路没加载出来→_→
- 在JAVA中添加openlayer3的js包制作地图,使用geoserver发布地图,将发布的地图连接到网页中
- 使用geoserver发布地图
- 在geoserver上发布地图
- openLayer3地图的使用心得
- 基于GeoServer切片地图服务的发布
- 基于GeoServer切片地图服务的发布
- OpenLayers访问Geoserver发布的地图
- 基于GeoServer切片地图服务的发布
- OpenLayers访问Geoserver发布的地图
- OpenLayers访问Geoserver发布的地图
- 旋转geoserver发布的wms地图
- Openlayers访问GeoServer发布的地图服务
- openlayer调用geoserver发布的地图实现地图的基本功能
- Geoserver 谷歌栅格地图的使用 多级发布
- 在GeoServer中使用Udig配置的地图样式
- GeoServer 2.3 发布地图
- 基于Geoserver发布地图
- GeoServer发布地图服务
- Tomcat7.0源码分析——请求原理分析(上)
- JDK8中AbstractMap类源码分析
- 前端新手常见问题(转自简书--我要认真学前端)
- ZStack OSAL的事件(event)与消息(message)——part1 & part2
- ESR 发现三种 C 的替代语言,C 语言的地位被动摇?
- 在JAVA中添加openlayer3的js包制作地图,使用geoserver发布地图,将发布的地图连接到网页中
- 代码编辑器 Codemirror 常用API
- VC与matlab混合编程
- linux 读者写着问题 c++
- Android入门——数据解析之使用GSON解析JSON字符串(二)
- 新版本的express怎么就搞不定,看这里
- 【JavaSE_学习笔记】Set接口及其子实现类
- springmvc学习 hello word
- 群控源码(可二次开发)