Openlayers API-Draw

繪制功能在Openlayers中比較常用,平時(shí)我們需要手動(dòng)繪制一些點(diǎn)、、、多邊形,等圖形,Openlayers為我們提供了相關(guān)的API,主要API都在ol/interaction/Draw里面,繪制的API使用起來也比較簡(jiǎn)單,首先創(chuàng)建一個(gè)Draw對(duì)象,然后再使用MapaddInteraction方法添加該對(duì)象,就可以進(jìn)行繪制了,如下面的偽代碼所示:

var draw = new ol.interaction.Draw({
            source:sourse,
            type:type,
            geometryFunction:geometryFunction
      })
map.addInteraction(draw);

模式

Draw的繪制模式主要有以下四種:

  • Point:點(diǎn)
  • LineString:線
  • Polygon:面
  • Circle:圓

屬性

創(chuàng)建Draw對(duì)象時(shí),可以在構(gòu)造函數(shù)中傳遞一些參數(shù),具體的屬性如下所示:

  • type:繪制的幾何類型,包括Point,LineString,Polygon,Circle四種類型。
  • features:表示繪制的圖形將添加在指定的要素上。
  • source:繪制時(shí)指定的數(shù)據(jù)來源。表示繪制的圖形將添加在指定的圖層上。
  • stopClick:繪制時(shí)停止為地圖添加的click, singleclick, doubleclick 事件。
  • maxPoints:最多可以繪制多少個(gè)點(diǎn),比如設(shè)置成5,在繪制多邊形時(shí),如果超過了5個(gè)點(diǎn)就不能繪制了。
  • minPoints:在完成多邊形環(huán)或線時(shí),必須指定繪制的點(diǎn)數(shù)。多邊形的默認(rèn)值為3,線段的默認(rèn)值為2
  • finishCondition:指定一個(gè)函數(shù),在繪制完成后調(diào)用,返回一個(gè)true將完成繪制。
  • style:指定繪制圖形的樣式。
  • geometryFunction:用于指定geometry,包括兩參數(shù),分別是coordinates, geometry,返回geometry。通過該方法可以重新構(gòu)建圖形,比如將圓形構(gòu)造成五角星。
  • geometryName:幾何對(duì)象的名稱。
  • condition:在繪制時(shí)監(jiān)聽點(diǎn)擊事件,返回一個(gè)布爾值表示是否處理該點(diǎn)擊事件。
  • freehand:手繪線、面等圖形。
  • freehandCondition:指定一個(gè)函數(shù),繪制的時(shí)候當(dāng)鼠標(biāo)移動(dòng)時(shí)將調(diào)用該函數(shù)。

方法

  • createBox:當(dāng)typeCircle時(shí)將geometryFunction設(shè)置成該方法,可以繪制矩形。
  • createRegularPolygon:當(dāng)typeCircle時(shí)將geometryFunction設(shè)置成該方法,可以正多邊形。
  • appendCoordinates:當(dāng)在繪制完線或者多邊形后,還可以通過該方法往圖形中添加坐標(biāo)。
  • extend:擴(kuò)展圖片,可以往圖形上再添加一個(gè)圖形,僅限于線條。
  • finishDrawing:結(jié)束繪制。
  • removeLastPoint:刪除最后一個(gè)坐標(biāo)點(diǎn)。

事件

  • drawend:繪制結(jié)束時(shí)觸發(fā)。如draw.on('drawend',function() {})
  • drawstart:繪制開始時(shí)觸發(fā)。如draw.on('drawstart',function() {})
    個(gè)人博客
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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