dynmeth / RaphaelLayer

Raphael overlay for Leaflet maps
MIT License
80 stars 25 forks source link

L.geoJson() layer position gets reset on pan #10

Open monkut opened 11 years ago

monkut commented 11 years ago

I just plugged in the debug demo code below into a minimal map where L.geoJson() layers already exist, to try out rlayer.

On pan both existing L.geoJson() layer's position gets reset to the center. (this shouldn't be happening.)

Then tried to replace L.geoJson() with R.GeoJSON() and got a leaflet-side id error.

using Leaflet-Leaflet-v0.5.1-0-gc1d410f.zip.

var adelaide = new L.LatLng(-34.93027490891421, 138.603875041008); var points = []; map.on('click', function(e) { points.push(e.latlng);

if(points.length == 4) {
    var p = new R.Polygon(points);
    map.addLayer(p);
    p.hover(function() {

    },
    function() {
        p.animate({opacity: 0}, 1000, function() { map.removeLayer(p); });

    });

    points = [];
}

var b = new R.BezierAnim([adelaide , e.latlng], {}, function() {
    var p = new R.Pulse(
            e.latlng, 
            6,
            {'stroke': '#2478ad', 'fill': '#30a3ec'}, 
            {'stroke': '#30a3ec', 'stroke-width': 3});

    map.addLayer(p);
    setTimeout(function() {
        map.removeLayer(b).removeLayer(p);
    }, 3000);
});

map.addLayer(b);

});

marutib commented 10 years ago

Ah ! I am facing the same problem :( I am using Pulse too. Any solutions ?

pvinton commented 10 years ago

I submitted a pull request a couple of months ago that I think may solve this problem: https://github.com/dynmeth/RaphaelLayer/pull/14

The pull request has not been accepted, so you'll have to manually tweak your code to test it out.