2016-10-03 5 views
0

では動作しません。私は、次のコードのleaflet0.7.7でソリューションを探しています:Methodeの削除がleaflet0.7.7

var currentlyDisplayedRectangles = []; //Used in CorridorHandler 

drawRoute = function(route) { 
    route = new L.Polyline(L.PolylineUtil.decode(route)); // OSRM polyline decoding 
    boxes = L.RouteBoxer.box(route, this.wideroad); 
    var bounds = new L.LatLngBounds([]); 
    if (currentlyDisplayedRectangles) { 
     for (var i = 0; i < currentlyDisplayedRectangles.length; i++) { 
     //currentlyDisplayedRectangles[i].remove(); //Doesn't work in leaflet0.7.7 
     console.log(currentlyDisplayedRectangles[i]); 
     } 
    } else { 
     currentlyDisplayedRectangles = []; 
    } 
    for (var i = 0; i < boxes.length; i++) { 
     var displayedRectangle = L.rectangle(boxes[i], {color: "#ff7800", weight: 1}).addTo(this.map); 
     currentlyDisplayedRectangles.push(displayedRectangle); 
     bounds.extend(boxes[i]); 
    } 
    this.map.fitBounds(bounds); 
    return route; 
    }; //End drawRoute() 

これはleaflet1.0.0ではなくleaflet0.7.7で完璧に動作

currentlyDisplayedRectangles[i].remove(); 

これは、機能が利用できないというエラーを表示します。

何故か私は実際にはleaflet1.0.0に更新できません。なぜなら、他の多くのものはこれ以上動作しないので、私はこれを受け入れなければなりません。

後で私は確かに更新するつもりです。しかし、一方、私は以前のバージョンのチラシを解決する必要があります。

誰もこの問題を解決する方法を知っていますか?

答えて

3

リーフレット0.7.xでは、Ilayer abstract classにはremoveメソッドがありません。

リーフレット1.0のremove method of the Layer classと比較してください。

代替方法としてremoveLayer method from the Map classを使用してください。

+0

よく、私はそれをどのように実装するか考えていません。あなたは私に例を挙げることができますか? –

+1

@Guidoレイヤーを作成するときは、そのレイヤーへの参照を保持します。例: 'map.removeLayer(polyline);' – user2441511

+0

ありがとう@イワン、私は持っています。(例えば、var polyline = L.polyline(dataArray、{color: 'blue'})それ... –

関連する問題