使用leaflet插件,左右地圖同步功能小結(jié)

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)換?。?!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容