使用Tomcat+geoserver+openlayers建立GIS网站过程

原创性声明:
请尊重本人劳动成果,转载时但请务必标明出处!!本人保留追究法律责任的权利。谢谢合作!

新建虚拟目录与虚拟主机:

虚拟目录:D:/ecsmap

WEB-INF下web.xml里的内容为:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

  <display-name>My Web Application</display-name>
  <description>
     An application for ECSMAP.
  </description>

<servlet>
	<servlet-name>Test</servlet-name>
	<display-name>Test</display-name>
	<description>A Servlet test.</description>
	<servlet-class>test.Test</servlet-class>
</servlet>
<servlet>
	<servlet-name>HelloWorld</servlet-name>
	<display-name>HelloWorld</display-name>
	<description>A Servlet test.HelloWorld!!</description>
	<servlet-class>helloworld.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>Test</servlet-name> 
	<url-pattern>/Test</url-pattern> 
</servlet-mapping>
<servlet-mapping>
	<servlet-name>HelloWorld</servlet-name>
	<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

</web-app>

tomcat/conf目录下的server.xml的内容如下:

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">
  
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
 
  <Listener className="org.apache.catalina.core.JasperListener" />
  
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  
  <GlobalNamingResources>
    
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
 
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
       
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
	<Context path="/ecsmap" docBase="D:/ecsmap" debug="0" reloadable="true"/>

      </Host>
<Host name="ecsmap" debug="0" appBase="D:\ecsmap">
<Context path="" docBase="." debug="0"/>
</Host>
    </Engine>
  </Service>
</Server>

mytest.html的内容为:

 <!DOCTYPE html>
  <html lang='zh-cn'>
  <head>
      <meta charset='utf-8' />
      <title>My OpenLayers Map</title>
	  <link rel="stylesheet" type="text/css" href="openlayers/theme/default/style.css"/>
	  <style type="text/css">
	   #map {
                clear: both;
                position: relative;
                width: 1000px;
                height: 600px;
                border: 1px solid black;
            }
	  
	  </style>
      <script type='text/javascript' src='openlayers/OpenLayers.js'></script>
      <script type='text/javascript'>
          var map;
          function init() {
		  	 format = 'image/png';
               var bounds = new OpenLayers.Bounds(
                    121.120606, 28.169589,
                    121.871688, 28.525587
                );
                var options = {
                    controls: [],
                    maxExtent: bounds,
                    maxResolution: 0.0013726171875,
                    projection: "EPSG:4326",
                    units: 'degrees'
                };
                map = new OpenLayers.Map('map', options);
            //基础图层,可以用一个图层组做基础图层
				var baselayer = new OpenLayers.Layer.WMS(
					"底图",
					"http://localhost:8080/geoserver/WenLing/wms",
					{	
						layers:'WenLing:xianjie_region', 
						format:format,
					},
					{
						isBaseLayer:true,//设置本层为基底图层
						yx : {'EPSG:4326' : true}
					}
				);
				
				//县界
				var xianjie = new OpenLayers.Layer.WMS(
					"县界",
					"http://localhost:8080/geoserver/WenLing/wms",
					{	
						layers: 'WenLing:xianjie_region',
						transparent:true,  //设置从服务器返回的地图图像是透明的
						format: format
					},
					{
						displayInLayerSwitcher:false, //使该图层不显示在switcher中
						//minScale:xxx  ,  //只有达到一定缩放比例该图层时才显示
						opacity:0.5   //设置客户端图层半透明
					}
				);
				
				//水系
				var waters = new OpenLayers.Layer.WMS(
					"水系", "http://localhost:8080/geoserver/WenLing/wms",
					{	
						layers: 'WenLing:shuixi_region',
						transparent:true,
						format: format
					},
					{
						opacity:1  //设置客户端图层不透明
					}
				);
				
				//岛屿
				var islands = new OpenLayers.Layer.WMS(
					"岛", "http://localhost:8080/geoserver/WenLing/wms",
					{	
						layers: 'WenLing:dao_region',
						transparent:true,
						format: format
					},
					{
						opacity:0.5
					}
				);
				
				//铁路
				var tielu = new OpenLayers.Layer.WMS(
					"铁路", "http://localhost:8080/geoserver/WenLing/wms",
					{	
						layers: 'WenLing:tielu_polyline',
						transparent:true,
						format: format
					},
					{
						transitionEffect:"resize", //使该图层放大或缩小时产生调整大小的动画
						opacity:0.5
					}
				);
				
				//县
				var xian = new OpenLayers.Layer.WMS(
					"县", "http://localhost:8080/geoserver/WenLing/wms",
					{	
						layers: 'WenLing:xian_point',
						transparent:true,
						format: format
					},
					{
						//minScale:xxx  ,  //只有达到一定缩放比例该图层时才显示
						opacity:0.5
					}
				);
				
				//变电站
				biandianzhan = new OpenLayers.Layer.WMS(
					"变电站", "http://localhost:8080/geoserver/WenLing/wms",
					{
						layers: 'WenLing:biandianzhan_point',
						transparent:true,
							format: format
					},
					{
						opacity:0.5
					}
				);
				
				guangxianwang = new OpenLayers.Layer.WMS(
					"光纤网", "http://localhost:8080/geoserver/WenLing/wms",
					{
						layers:  'WenLing:guangxianwang_polyline',
						transparent:true,
						format: format
					},
					{
						transitionEffect:"resize", //使该图层放大或缩小时产生调整大小的动画
						opacity:0.5
					}
				);
				
				map.addLayers([baselayer, xianjie, waters, islands, tielu, xian, biandianzhan, guangxianwang]);
				
				map.setCenter(map.getCenter());//设置地图中心点
				map.addControl(new OpenLayers.Control.PanZoomBar({
                    position: new OpenLayers.Pixel(2, 15)
                }));
                map.addControl(new OpenLayers.Control.Navigation());
				map.addControl(new OpenLayers.Control.LayerSwitcher());
                map.addControl(new OpenLayers.Control.Scale($('scale')));
                map.addControl(new OpenLayers.Control.MousePosition());
                map.zoomToExtent(bounds);
				
             if (!map.getCenter()) {
                map.zoomToMaxExtent();
            }
         }
     </script>
  </head>
  <body onload='init();'>
     <div id='map'>
      </div>
  </body>
  </html>

在浏览器输入:http://ecsmap:8080/mytest.html,

测试结果为:

转载自:https://blog.csdn.net/yutao929/article/details/9631415

You may also like...