源碼: https://github.com/sueRimn/ArcGIS-for-qml-demos實作地圖上滑鼠點選後添加自由文本功能
版權聲明:如需轉載,請聯系獲得授權或者附上原文連結
(沒有錄進滑鼠)效果如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuIzNlZTYhZ2M1ATYmljY1gTMxAzYyMmY0YWO3ADZlRTZfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
要想在地圖上添加标注和圖形,必須了解圖層的概念。
怎麼建立會在單獨一篇部落格中講解。
這裡在地圖上實作添加自由文本的功能,操作過程是在地圖上任意一個地方點選,然後點選添加文本按鈕,彈出一個輸入框,輸入想要輸入的文字後回車,文本就會出現在地圖上點選的地方。關于添加文本的字型大小、顔色,這個以後會在完善後更新部落格。
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
}
關于滑鼠點選兩點進行測距在另一篇博文:
《ArcGIS for qml 測距》