日期:2014-05-16  浏览次数:20561 次

基于OpenLayers的地图封装Javascript类定义


基于OpenLayers的地图封装Javascript类定义

MapCwgisClass.js

//web地图封装类
//MapCwgisClass类的定义
//vp:hsg,myk
//create date:2013-07-26
//类 原型定义
var Person = function () {
    this.m_Name = "good";
}
Person.prototype = {
    m_Name: '',
    getName: function () {
        return this.m_Name;
    }
}
//类 原型定义
var MapCwgisClass=function()
{
        //OpenLayers环境参数
        OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
        OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;
        OpenLayers.INCHES_PER_UNIT["千米"] = OpenLayers.INCHES_PER_UNIT["km"];
        OpenLayers.INCHES_PER_UNIT["米"] = OpenLayers.INCHES_PER_UNIT["m"];
        OpenLayers.INCHES_PER_UNIT["英里"] = OpenLayers.INCHES_PER_UNIT["mi"];
        OpenLayers.INCHES_PER_UNIT["英寸"] = OpenLayers.INCHES_PER_UNIT["ft"];
        this.defaultFormat = 'image/png';
        //
        this.map=null;                      
}
MapCwgisClass.prototype={
    //属性
    wms_url:null,
    wms_url_getFeature:null,
    map_divid:null,
    map: null,
    currentClientPoint: null,
    currentClientMapPoint:null,
    m_CurrentTool:null,    
    ProxyHost:null,
    defaultFormat:null,
    defaultProjection:null,
    defaultBounds:null,
    vlayer_drawFeature:null,
    layer_Highlight:null,
    LayerList:null,
    //自定义的wms图层属性
    map_Raster:null,
    map_Cadastra:null,
    //
    //图层名称
    layer_DOM: "RFS_DOM",       //DOM层名;
    layer_XZQ: "RFS_XZQ",       //行政区层名
    layer_DX : "RFS_MZDW",        //其他地类层名
    layer_ZD : "RFS_CBD_ZD",    //宗地层名
    //新添加图层
    layer_ZD_LS:"RFS_CBD_LS",   //地块历鸣图层名称
    //方法    
    //初始化地图方法
    init:function()
    {    
        //OpenLayers.ProxyHost = 'GeoServerProxy.aspx?URL=';
        OpenLayers.ProxyHost =this.ProxyHost;	
        //
        //默认参数
        this.defaultProjection = "EPSG:2358";
        this.defaultBounds = new OpenLayers.Bounds(
            34602000.15, 3318000.3500000006,
            34609999.65, 3326999.8500000006);
	    var bounds = this.defaultBounds;
        //选项
	    var options = {
		    controls: [], //若添加编辑框就在[]中加上 new OpenLayers.Control.EditingToolbar(vlayer)
		    maxExtent: bounds,
		    maxResolution: 35.154296875,
		    projection: this.defaultProjection,
		    units: 'm',
		    allOverlays: false        //true代表允许叠加显示图层
	    };
        //初始化地图对象
	    this.map = new OpenLayers.Map(this.map_divid, options);
        map=this.map;  //给全局变量map赋值
        mapWrap = this; //给全局变量赋值 
        var t_LLPoint=new OpenLayers.LonLat(0, 0);
	    //this.setCenterPoint(t_LLPoint, 3);
        //放大到指定范围地图
	    //this.map.zoomToExtent(bounds);
        //    
	}, 
    setCenterPoint:function(openLayerLonLatPoint,Level)
    {
        if(this.map!=null)
        {
            this.map.setCenter(openLayerLonLatPoint,Level); 
        }
    },
    //创建wms图层
    createLayerWms:function(p_mapName,p_wms_url,p_layers)
    {
         var t_mapLayer = new OpenLayers.Layer.WMS(
                    p_mapName, p_wms_url,
				    {
					    layers: p_layers,
					    styles: '',
					    tiled: true,
					    srs: defaultProjection,
					    format: defaultFormat
				    },
				    {
					    singleTile: true, ratio: 1
				    }
        );
        return t_mapLayer;
    },
    //创建Vector图层
    createLayerVector:function(p_LayerName)
    {
        var t_layer_vector = new OpenLayers.Layer.Vector(p_LayerName);
        return t_layer_vector;
    },
    //创建查询图层
    createLayerQuery:function(p_QueryLayerName)
    {
        var t_querylayerName='查询图层';
        if(p_QueryLayerName!=null && p_QueryLayerName!="")
        {
            t_querylayerName=p_QueryLayerName;
        }
        var t_styleMap=new OpenLayers.StyleMap({ 
			    "d