1.地圖構(gòu)造
? ? 1)左右地圖構(gòu)造,同一組件,需要調(diào)用時為不同id.一開始的時候用的在組件內(nèi)部,定義了一個變量,隨機生成隨機數(shù)。
2.放大,縮小,平移同步
1)事件的監(jiān)聽
監(jiān)聽鼠標的mouseOver和mouseOut,移近加監(jiān)聽,移除去監(jiān)聽(否則事件不斷響應(yīng),會造成死循環(huán))
2)數(shù)據(jù)派發(fā)
一開始用了center(中心點)和zoom(方大級別)兩個參數(shù)控制,導(dǎo)致zoom的時候一個地圖按中心點縮放,而另一個按當(dāng)前鼠標位置進行縮放。最終采用bounds控制。
3.數(shù)據(jù)同步
一開始采用直接把圖層傳出去,導(dǎo)致刪除和編輯的時候,點擊右側(cè),結(jié)果右側(cè)沒刪,左側(cè)刪了。因為圖層是一個對象,用的是引用。所以采用把每個layer轉(zhuǎn)成GeoJSON,放進數(shù)組傳出。
4.圖形構(gòu)造
因為傳出去不處理拿進來以后還是GeoJSON,而mapleaflet可以用GeoJSON構(gòu)造對象。
? ? ? ? L.geoJSON(element, {
? ? ? ? ? ? style: function(feature) {
? ? ? ? ? ? ? return { color: 'red' };
? ? ? ? ? ? }
? ? ? ? }));
5.點工具欄編輯的時候編輯不了(獲取不到圖形那些節(jié)點)
后來發(fā)現(xiàn),GeoJSON構(gòu)造的對象不能被編輯?。?!
但是左邊還是可用的(因為本來也不讓他編輯)
右邊需要根據(jù)類型構(gòu)造Marker,polyline,polygon
6.數(shù)據(jù)轉(zhuǎn)換
繪制完成時拿到的數(shù)據(jù)是【lng,lat】
構(gòu)造時需要的數(shù)據(jù)格式是【lat,lng】
轉(zhuǎn)換?。?!