源码:https://github.com/sueRimn/ArcGIS-for-qml-demos

实现地图上鼠标点击后添加自由文本功能

作者: 狐狸家的鱼

Github: 八至

版权声明:如需转载,请联系获得授权或者附上原文链接

(没有录进鼠标)效果如下:

要想在地图上添加标注和图形,必须了解图层的概念。

怎么建立会在单独一篇博客中讲解。

这里在地图上实现添加自由文本的功能,操作过程是在地图上任意一个地方点击,然后点击添加文本按钮,弹出一个输入框,输入想要输入的文字后回车,文本就会出现在地图上点击的地方。关于添加文本的字体大小、颜色,这个以后会在完善后更新博客。

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 测距》

作者:狐狸家的鱼

本文链接:https://www.cnblogs.com/suRimn/p/9849195.html

声明:如需转载请联系作者或者附上原文链接

ArcGIS for qml -添加自由文本的更多相关文章

  1. OpenLayers学习笔记(三)— QML与HTML通信之 地图上点击添加自由文本

    实现在地图随意点击,弹出文本输入框,输入任意文字,完成自由文本添加的功能 作者: 狐狸家的鱼 GitHub:八至 本文链接:地图上点击添加自由文本 关于如何QML与HTML通信已经在上一篇文章 QML ...

  2. ArcGIS for qml -测距

    源码:https://github.com/sueRimn/ArcGIS-for-qml-demos 实现求地图上两点之间距离功能 作者: 狐狸家的鱼 Github: 八至 版权声明:如需转载,请联系 ...

  3. Arcgis for qml - 鼠标拖拽移动

    以实现鼠标拖拽文本图层为例 GitHub:ArcGIS拖拽文本 作者:狐狸家的鱼 目的是利用鼠标进行拖拽. 实现两种模式,一种是屏幕上的拖拽,第二种是地图上图层的挪动. 屏幕上的拖拽其实跟ArcGIS ...

  4. jquery删除添加输入文本框

    效果体验:http://hovertree.com/texiao/jquery/67/ 效果图: 参考:http://hovertree.com/h/bjaf/traversing_each.htm ...

  5. ArcGIS for qml - 地址地标转换为经纬度(地理编码)

    实现输入地址地标转换为其经纬度 本文链接:地理编码 作者: 狐狸家的鱼 Github: 八至 一.地理编码 1.地理编码含义 地址编码(或地理编码)是使用地址中包含的信息来插入地图上的相应位置的过程. ...

  6. Django xadmin后台添加富文本编辑器UEditor的用法

    效果图: 步骤: 1.利用命令:pip install DjangoUeditor,安装DjangoUeditor,但由于DjangoUeditor没有python3版本的,从的Github上把修改好 ...

  7. arcgis for javascript 添加featurelayer,设置地图最大最小等级

    转自原文arcgis for javascript 添加featurelayer,设置地图最大最小等级 var map; var livingCenter; var livingCenterUrl = ...

  8. ArcGIS Engine中添加点、线、面元素

    转自原文 ArcGIS Engine中添加点.线.面元素 此种方式为IElement的方式在axMapControl的GraphicsContainer中好绘制图形. //画点 IPoint pt = ...

  9. ArcGIS for qml -关于空间参考如何选择设置

    作者: 狐狸家的鱼 Github: 八至 版权声明:如需转载请获取授权和联系作者 1.关于空间参考 空间参考可以通过众所周知的ID(WKID) - 整数值来引用. 官网指南中也有对此的专门说明 htt ...

随机推荐

  1. Angular 过滤器

    <!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...

  2. PreparedStatement和Statement

    1 . PreparedStatement 接口继承 Statement , PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象. 2  ...

  3. 你不知道的JavaScript——第二章:this全面解析

    1调用位置 调用栈:为了到达当前执行位置所调用的所有函数. function baz(){ //当前调用栈:baz //因此,当前调用位置是全局作用域 console.log('baz'); bar( ...

  4. flutter开发vscode用模拟器调试

    android studio的太重,我装的是android sdk,使用avd的模拟器启动黑屏 启动夜神模拟器(已卸载) 建立连接: adb connect 127.0.0.1:62001    (夜 ...

  5. 第四周作业&&结对编程

    1. 结对编程. 本周开始,和我结对编程的小伙伴是齐嘉亮(博客:http://www.cnblogs.com/zhengrui0452/). 因为这周需要发布四人团队项目的alpha版本,刚好我和亮哥 ...

  6. Linux基础学习笔记5-软件管理

    包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器: debian:deb文件.dpkg包管理器 redhat:rpm文件.rpm包管理器 rpm:Redhat ...

  7. How to gitignore

    git rm -r --cached . git add . git commit -m "remove gitignore cache" git push

  8. kubernetes ceph-rbd挂载步骤 类型PersistentVolume

    k8s集群每一台上面都要安装客户端: ceph-deploy  install  k8s的ip地址 创建一个k8s操作用户: ceph auth add client.k8s mon 'allow r ...

  9. Vue——轻松实现vue底部点击加载更多

    前言 需求总是不断改变的,好吧,今天就把vue如何实现逐步加载更多和分布加载更多说下,默认你知道如何去请求数据的哈 一次请求 页面 使用slice来进行限制展现从0,a的数据 <div v-fo ...

  10. HDU4460-Friend Chains-BFS+bitset优化

    bfs的时候用bitset优化一下. 水题 #include <cstdio> #include <cstring> #include <algorithm> #i ...