• 百度地图 api 功能封装类 (ZMap.js) 新增管理事件功能 [源码下载]


    ZMap 功能说明

    ZMap.js 本类方法功能大多使用 prototype 原型 实现;

    包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐标是否在一个圆圈内,生活服务查询,
    从经纬度获取地址信息,地图工具包括测距,获取面积,以积打印地图,地图全屏,实时路况,坐标是否在polygon区域内,
    打车方案,经过中间途经点,添加地图控件;

     界面查看 : http://www.cnblogs.com/editor/p/4080517.html

    相关新增代码

    1. defaults 代码块:

    ZMap.defaults = {
        city : '泉州',
        level: 12
    };

    地图初始化时,如果未设置相关地理坐标时,默认显示位置及级别;

    2. 事件 块代码:

    ZMap.addListener = function(obj,type,callback) {
        ZMap.events.add('Main', obj, type, callback);
    };
    
    /**
     * 1. add => key: method_objName[x]
     * eg: GuiJiPlay_polyline
     * 2. ZMap.mapObj => key: Main
     * 3. caches => key : method_objName[x]_type || Main_type
     */
    ZMap.events = {
        caches : {},
        add : function(key,obj,type,callback) {
            obj.addEventListener(type, callback);
            this.caches[key+'_'+type] = {'obj':obj, 'type':type, 'callback':callback};
        },
        remove : function(key, type) {
            this.removeByKey(key+'_'+type);
        },
        removeByKey : function(keytype) {
            if (this.caches[key]) {
                var json = this.caches[keytype];
                json['obj'] && json['obj'].removeEventListener(json['type'], json['callback']);
                
                delete this.caches[key];
            }
        },
        clear : function () {
            for (keytype in this.caches) {
                this.removeByKey(keytype);
            }
            
            this.caches = {};
        }
    };

    ZMap.addListener 现在只用于 ZMap.mapObj 地图的事件添加操作;

    ZMap.events 可以用于所有对象的事件操作,添加,删除,清除所有事件;

    ZMap.evetns 说明 

    1. caches 为 json 格式 对象;用于缓存 添加事件,格式为:

    {
          'Main_click': {'obj':map, type'click', 'callback':callback},
          'GuiJiPlay_polyline_click':{'obj':polyline, type'click', 'callback':callback}
    }

    key 为 add 方法中的 key + '_' + 事件类型 type;

    2. add方法参数说明: 

    1>. key: 如果是 ZMap.mapObj 则 key 为 Main; 如果为其他,则自定义,一般为 当前: '功能方法_对象名称', 比如 'GuiJiPlay_polyline';

    2>. obj 为 要添加事件的对象,所有地图对象都可以添加 事件;

    3>. type 为事件类型:click, dblclick, dragend 等

    4>. callback 为回调方法;

    3.  remove 方法,key 跟 add 方法参数 key 一样; type 为事件类型;

    4. clear 方法,清除地图及相关控件,Overlay 等设置的所有事件;

    使用方法

    var polyline = ZMap.addPolyline(points);
    
    //添加事件
    ZMap.events.add('Test_polyline', polyline, 'click', function(e) {
        alert('测试事件添加');
    });
    
    //删除事件
    ZMap.events.remove('Test_polyline', 'click');
    //
    ZMap.events.removeByKey('Test_polyline_click');
    
    //清空所有事件
    ZMap.events.clear();

    源码下载

    源码下载:http://files.cnblogs.com/editor/baiduMap3.rar

    本项目源码采用 SpringMvc+Maven搭建,src/main/webapps 下即是 脚本源码;

  • 相关阅读:
    深拷贝浅拷贝的探索以及实现
    Vue之动态class写法总结
    hh
    90%的新媒体人都在用的标题套路!
    研究999篇100W+爆款文,标题之总结
    想突破10w+?先过了这一关……
    易撰数据分析,做精准爆文分析!
    清除.bat
    截图.bat
    Git 学习笔记(二)分支管理
  • 原文地址:https://www.cnblogs.com/editor/p/4118349.html
Copyright © 2020-2023  润新知