Leaflet地图初始化时对 prototype引用造成的影响

今天上午在对Leaflet地图的点添加点击事件的时候发现,Leaflet的初始化可能会对prototype中函数对prototype其他函数引用造成影响,在渲染地图时,一般讲gis 传入对应的渲染方法中。具体参见如下代码:

(function ($) {
    Demo = function(element,options){
        gis = this;
        //renderMap中传入gis对象。前几次不传发现失败,不能调用
        //protorype其他的函数。
        gis.renderMap(gis);
        gis.printPoint();

    }

    Demo.prototype =  {
        property : 'x',
        renderMap : function () {
            var map = gis.map = L.map('mapid',{
                renderer: L.canvas()
            });

            map.setView([30, 120], 13);

            L.tileLayer('http://172.16.1.55:7780/Map/{z}/{xd}/{yd}/{x}_{y}_{z}.png', {//http://{s}.tile.osm.org/{z}/{x}/{y}.png  172.16.1.55:7780/Map/{z}/{xd}/{yd}/{x}_{y}_{z}.png
                attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
            }).addTo(map);




        },

        printPoint : function(){

            var map = gis.map;
            for (var x = 120;x<121.005;) {
                x = x + 0.005
                for (var y = 30; y < 30.5;) {
                    y = y + 0.005
                    var circle = L.circle([y, x], {radius: 20}).addTo(map);
                    var obj = {'x': x, 'y': y}
                    gis.point_fire(circle, obj)
                }
            }
        },

        point_fire : function (circle,x) {
            circle.addEventListener('click',function () {
                gis.point_fire2(circle,x)
                console.log(x)
            })
        },

        point_fire2 : function (circle,x) {
            console.log(x)
        }
    }

    $.fn.Demo = function () {
        var gis = this;
        return new Demo(gis)
    }
})(jQuery)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值