OpenLayers基礎知識:


 OpenLayers是一個開源的js框架,用於在您的瀏覽器中實現地圖瀏覽的效果和基本的zoom,pan等功能。OpenLayers支持的地圖來源 包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,您也可以用簡單的圖片作為源,在這一方面OPenLayers提供了 非常多的選擇。  
       要使用OpenLayers,您可以到它的官方網站http://www.openlayers.org下載他的壓縮 包,解壓后可以看到其中的一些目錄和 文件。拷貝dist目錄下的OpenLayer.js、根目錄下的lib目錄、根目錄下的img目錄到你網站的scripts目錄下(當然,這個只是例 子,您網站的目錄結構您自己說得算,只要保證OpenLayers.js,/lib,/img在同一目錄中即可)。  
      OpenLayers中最重要的2個對象Map和Layer.
      OpenLayers.Map的實體化方法:
         var map = new OpenLayers.Map("map");
         這里參數"map"對應頁面中顯示Map地圖的DIV的id名稱。
     OpenLayers.Layer為創建圖層對象,OpenLayers提供了很多圖層的擴展:
         * OpenLayers.Layer.Image  
         * OpenLayers.Layer.HTTPRequest  
         * OpenLayers.Layer.Grid  
         * OpenLayers.Layer.WMS  
         * OpenLayers.Layer.KaMap  
         * OpenLayers.Layer.EventPane  
         * OpenLayers.Layer.Google  
         * OpenLayers.Layer.VirtualEarth  
         * OpenLayers.Layer.Markers  
         * OpenLayers.Layer.Text  
         * OpenLayers.Layer.GeoRSS  
         * OpenLayers.Layer.Boxes  
         * OpenLayers.Layer.TMS

         Image類封裝一個實際圖象作為圖曾內容  
         HTTPRequest類可以接收一個動態生成的圖片,你可以通過HTTPRequest類的參數向 服務器發送參數  
         Grid類是HTTPRequest類的子類,提供更加詳細的方法  
         WMS類用於連接WMS服務器以獲得圖象  
         KaMap 類用於連接MapServer  
         EventPane類作為用於接收用戶操作的圖層  
         Google類用於從Google獲得圖象,它仍然需 要你從Google獲得API KEY,並且include  
         VirtualEarth類用於操作VirtualEarth的圖層  
         Markers 類用於生成接收和顯示用戶本地標記的圖層  
         Text類用於接收CSV文件  
         GeoRSS類是Marker類的子類,用於封裝接收 GeoRSS並在圖層中作出marker  
         Boxes同樣也是Marker類的子類,可以用div來做marker,而非image  
         TMS 用於接收TMS服務器的地圖

     OpenLayers還提供了豐富的Control類為地圖瀏覽添加一些工具,繼承自OpenLayers.Control類  

         * OpenLayers.Control.LayerSwitcher  
         * OpenLayers.Control.MouseDefaults  
         * OpenLayers.Control.MousePosition  
         * OpenLayers.Control.MouseToolbar  
         * OpenLayers.Control.OverviewMap  
         * OpenLayers.Control.PanZoom  
         * OpenLayers.Control.PanZoomBar  
         * OpenLayers.Control.Permalink  
         * OpenLayers.Control.Scale  

     這些類的實例會在地圖瀏覽的“窗口”上增加一些工具欄或是“按鈕”,增加互動性和功 能性。  

         OpenLayers對常用的數據結構進行了封裝  
         # OpenLayers.LonLat  
         # OpenLayers.Size  
         # OpenLayers.Pixel  
         # OpenLayers.Bounds以便於操作。

     現在寫個最簡單的例子做記錄:
       
<% @ page language = " java "  pageEncoding = " UTF-8 " %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  
< head >
    
< title > WMS MAP INIT </ title >
    
< script  src ="http://localhost:8080/geoserver/openlayers/OpenLayers.js"  type ="text/javascript" ></ script >
    
< style  type ="text/css" >
        #map 
{
            width
:  100% ;
            height
:  100% ;
            border
:  1px solid black ;
        
}
    
</ style >
    
< script  defer ="defer"  type ="text/javascript" >
        
function  init(){
            
// 數據存儲的左、下、右、上的范圍,默認為NULL
             var  bounds  =   new  OpenLayers.Bounds(
                
17831.799 91085.208 ,
                
18221.799 91287.26
            );
            
// 創建一個OpenLayers.Map構造新的地圖。
             var  options  =  {
                controls: [],
                maxExtent: bounds,
                maxResolution: 
1.5234375 ,
                projection: 
" EPSG:4326 " ,
                units: 'degrees'
            };
            
var  map  =   new  OpenLayers.Map('map', options);
            
// 創建一個圖層信息
             var  layer  =   new  OpenLayers.Layer.WMS( " State " " http://127.0.0.1:8080/geoserver/wms " , {
                        layers: 
" dwg:0_line "
                    });
//
             // 將創建的圖層對象添加到Map對象
            map.addLayer(layer);
            
// 顯示地圖
            map.zoomToMaxExtent();
        }
    
</ script >
  
</ head >
  
  
< body  onload ="init()" >
    
< div  id ="map" ></ div >
  
</ body >
</ html >


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM