基于OpenLayer地块标识信息查询功能Javascript类定义

来源:互联网 发布:大酒神零食店 淘宝 编辑:程序博客网 时间:2024/05/03 04:20

基于OpenLayer地块标识信息查询功能Javascript类定义

//mapCwgisDkIdentifyTool.js

//定义 地块标识信息查询功能//mapCwgisDkIdentifyTool.js//vp: hsg, myk//create date:2013-08-02//注意:需要地图所在页面有弹出式DevExpress窗体控件且名称为:popCBFInformation//回调函数function showCBFInformationWindow(dkbm) {    var isShowPage = false;    var url = 'cbfInformation.aspx?dkbm=' + dkbm;    if (popCBFInformation.GetVisible()) {        var oldUrl = popCBFInformation.GetContentUrl();        if (url != oldUrl) {            isShowPage = true;        }    }    else     {        isShowPage = true;    }    if (isShowPage) {                var left = document.documentElement.clientWidth - popCBFInformation.GetWidth();        popCBFInformation.SetContentUrl(url);        popCBFInformation.ShowAtPos(left, 33);    }}function closePopWindow_popCBFInformation() {    popCBFInformation.Hide();}//鼠标点选结果响应事件 回调函数中要使用全局对象类function DkIdentify_handlerGetFeature(req) {    var gml = new OpenLayers.Format.GML.v3({ xy: false }); //V3兼容v1.0.0 但如果默认或v1.1.0必须用v3且加xy:false    //获取搜索到的要素集对象    var t_features = gml.read(req.responseText);        //    if (t_features != null && t_features.length > 0) {        mapWrap.layer_Highlight.destroyFeatures();        mapWrap.layer_Highlight.addFeatures(t_features);        mapWrap.layer_Highlight.redraw();        //mapWrap.zoomToFeatures(t_features);        //        var vZDBM = t_features[0].attributes.ZDBM;        //显示弹出窗体       // alert(t_features);        showCBFInformationWindow(vZDBM);    }    else {        closePopWindow_popCBFInformation();        mapWrap.layer_Highlight.redraw();    }}//定义 地块标识信息查询功能mapCwgisDkIdentifyTool = OpenLayers.Class(mapCwgisPluginTool,{    initialize: function (p_mapCwgisClass,options) {        this.init(p_mapCwgisClass);        this.handlerClass = OpenLayers.Handler.Point;        this.handlerOptions = this.handlerClass;        mapCwgisPluginTool.prototype.initialize.apply(this, [p_mapCwgisClass, this.handlerClass, options]);    },    //定义鼠标按上事件 (重写基类方法)  (回调函数中要使用全局对象类)    onMouseUp: function (e) {        var defaultProjection = mapWrap.defaultProjection;        var wms_url_getFeature = mapWrap.wms_url_getFeature;        var layer_ZD = mapWrap.layer_ZD;    //宗地层名                //        mapWrap.currentMousePoint = { x: e.x, y: e.y };        var LL_point = mapWrap.map.getLonLatFromPixel(e.xy);        var geo_point = new OpenLayers.Geometry.Point(LL_point.lon, LL_point.lat);        //        //INTERSECTS相交,则value使用geo;若使用BBOX矩形框,则value使用boundselement[0].geometry        var filter_box = new OpenLayers.Filter.Spatial({            type: OpenLayers.Filter.Spatial.INTERSECTS,            projection: defaultProjection,            value: geo_point        });        //此处可添加多条件联合查询方式        var filter = filter_box;        //        var xml = new OpenLayers.Format.XML();        var _filter = new OpenLayers.Format.Filter.v1_1_0(); //或new OpenLayers.Format.Filter()        var request = OpenLayers.Request.GET({            url: wms_url_getFeature,            params: {                version: '1.1.0',                typeName: layer_ZD,                filter: xml.write(_filter.write(filter))            },            callback: DkIdentify_handlerGetFeature        });    },    //---------------------------------------------    CLASS_NAME: "mapCwgisDkIdentifyTool"});//设置选择地块工具var dk_identify_tool = new mapCwgisDkIdentifyTool(mapWrap);dk_identify_tool.init(mapWrap);////向全局工具栏管理类注册if (cmToolBar != null) {    cmToolBar.addItem(dk_identify_tool);}//===============================================//此功能弹出窗体中的地块列表中要调用的定位功能//===============================================var g_find_dk_state = false;function DkIdentify_dklocation_handlerGetFeature(req) {    g_find_dk_state = false;    var gml = new OpenLayers.Format.GML.v3({ xy: false }); //V3兼容v1.0.0 但如果默认或v1.1.0必须用v3且加xy:false    var t_features = gml.read(req.responseText);    if (t_features != null && t_features.length > 0) {        mapWrap.layer_Highlight.destroyFeatures();        //        mapWrap.layer_Highlight.addFeatures(t_features);        mapWrap.layer_Highlight.redraw();        //缩放到要素(定位)        mapWrap.zoomToFeatures(t_features);        //获取属性值        var vZDBM = t_features[0].attributes.ZDBM;        g_find_dk_state = true;    }    else {        mapWrap.layer_Highlight.redraw();    }}//查询定位功能 通用查询函数function DkIdentify_doQueryLocation(layerName, fieldName, fieldValue) {    var wms_url_getFeature = mapWrap.wms_url_getFeature;    //设置查询条件    var filter_fd_val = new OpenLayers.Filter.Logical({        type: OpenLayers.Filter.Logical.AND,        filters: [                new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.EQUAL_TO,                    property: fieldName,                    value: fieldValue                })    ]    });    //执行查询条件    var xml = new OpenLayers.Format.XML();    var _filter = new OpenLayers.Format.Filter.v1_1_0();    var request = OpenLayers.Request.GET({        url: wms_url_getFeature,        params: {            version: '1.1.0',            typeName: layerName,            filter: xml.write(_filter.write(filter_fd_val))        },        callback: DkIdentify_dklocation_handlerGetFeature    });};//====================================================//查询定位功能 宗地图层zdbm=dkbmfunction DkIdentify_doQueryLocation_zd_by_zdbm(dkbm) {    var layerName = mapWrap.layer_ZD;    //宗地层名    var fieldName = "ZDBM";    var fieldValue = dkbm;    DkIdentify_doQueryLocation(layerName, fieldName, fieldValue);};//用于dk标识查询功能的定位 宗地图层中function goto_dk_zdlayer(dkbm) {    DkIdentify_doQueryLocation_zd_by_zdbm(dkbm);};//====================================================//查询定位功能 宗地历史图层zdbm=dkbmfunction DkIdentify_doQueryLocation_zdls_by_zdbm(dkbm) {    var layerName = mapWrap.layer_ZD_LS;    //宗地层名    var fieldName = "ZDBM";    var fieldValue = dkbm;    DkIdentify_doQueryLocation(layerName, fieldName, fieldValue);};//用于dk标识查询功能的定位 宗地/宗地历史图层中function goto_dk_twolayer(dkbm) {    g_find_dk_state = false;    DkIdentify_doQueryLocation_zd_by_zdbm(dkbm);  //宗地图层中查找地块    if (g_find_dk_state == false) {        DkIdentify_doQueryLocation_zdls_by_zdbm(dkbm); //宗地历史图层中查找地块    }};//====================================================



0 0
原创粉丝点击