1. 程式人生 > >ArcGIS for qml 點選新增自由文字

ArcGIS for qml 點選新增自由文字

實現在地圖上滑鼠隨意點選新增輸入文字功能 

要想在地圖上新增標註和圖形,必須瞭解圖層的概念。

怎麼建立會在單獨一篇部落格中講解。

這裡在地圖上實現新增自由文字的功能,操作過程是在地圖上任意一個地方點選,然後點選新增文字按鈕,彈出一個輸入框,輸入想要輸入的文字後回車,文字就會出現在地圖上點選的地方。關於新增文字的字型大小、顏色,這個以後會在完善後更新部落格。

1.新增需要的元件-地圖、按鈕、輸入框

實現什麼功能必須先弄清楚需要哪些操作,順序是什麼,在這裡,是在地圖的左上方佈局一個按鈕,輸入框可以在按鈕的下方,首先做好佈局

2.新增承載文字的圖層

只需要記住,每個符號、圖形、圖片、點等都需要在GraphicsOverlay

裡新增,不同的圖形新增在對應各種的圖形層上,也可以使用js進行建立

核心程式碼如下:

//容納文字的圖層
        GraphicsOverlay{
            id:textGraphicOverlay
            //文字圖形
        }
        onMouseClicked: {
            addTextPoint = mouse.mapPoint
            console.log("新增文字座標點:",addTextPoint)
            textIpt.visible = true;
            textSymbol = ArcGISRuntimeEnvironment.createObject("TextSymbol")
            textSymbol.size = 15;
            textSymbol.color = "yellow";
            textGraphicOverlay.graphics.append(createGraphic(addTextPoint,textSymbol))
        }
    }
    Button{
        id:addTextBtn
        anchors{
            top:mapView.top
            left: mapView.left
            margins: 5
        }

        width: 100
        height: 45
        text: "addText"
        onClicked: textIpt.visible = true
    }
    TextField{
        id:textIpt
        visible: false
        anchors{
            top:addTextBtn.bottom
            left: mapView.left
            margins: 5
        }
        width: 100
        height: 40
        Keys.enabled: true
        Keys.onReturnPressed: {
            textSymbol.text = textIpt.text
            textIpt.text = ""
            textIpt.visible = false

        }