20 由属性查询学习到的ArcMap、javaScripts API相关操作
因项目需要,想要在属性查询的时候连同相关的图片一并查出来,但是因为要查询的图层众多,且字段不固定,而且还要方便后期维护,因此一个个单独配置并不是最优的解决方法
为实现这个功能,我想到如下几种解决方法
从后期系统维护方面考虑
数据方面:
一:最原始的方法,数据不进数据库,即不入Oracle或postgres等数据库,那么发服务则是动态服务或者是切片服务,那个shp要素需要添加图片或者更改图片,需要重新将数据处理好之后重新发服务,数据量如果小的话还可以,重发服务,不论是切片还是动态,都相对快,如果数据量大,则十分不方便,耗时太久,需要在shp属性中添加的是图片的url,文本类型
二:数据入库:即gdb或Oracle或postgres,发要素服务或切片服务都可以,要素服务最大的好处就是数据入库,改了数据中某一个属性,要素,都不需要重新发服务,适合数据量大,便于管理,节省服务器空间。此时图片数据存储就有两种方式了,
①同上面相同,存储图片路径,
②存储栅格数据,即图片
数据未入库之前,能存储的数据格式如下:

入库后,能存储的数据格式如下:

此时选择栅格类型,点击确定,关闭属性表,在catalog中找到该图层,管理,注册版本,打勾,启动编辑,重新打开属性表,在新建的栅格格式的字段点一下,右键,加载图片,

选择一个图片,点击确定即可,稍等片刻,出现如图所示界面
。然后发服务即可,同样是要素服务或切片服务,此时有一个问题我没有解决,已经发了要素服务的数据是不可以在arcmap中编辑的,但是在数据库中是如下图所示
,只有图片名称,我不知该如何编辑及预览。
代码方面
方法一
没有图片之前的属性查询界面如下
,
是表格形式,关键代码为:
,无需匹配任何字段,方便灵活,缺点是对不懂地图的人不友好,不明白查出来的字段是什么意思,而且对于上面在属性字段中存储照片的方式,该种写代码的方式不能显示出图片,并不能达到预期的效果。
方法二:思路:新建一个数组c,将要素所有内容获取,并push进去,判断有无存储图片地址的字段,若有,在push进去一个img标签,写上src,在调用content的时候,用c.join将数组分割,
关键代码如下

效果如下

达到目的,虽然是个姑娘,但我其实还是直男审美,后续继续美化
20 由属性查询学习到的ArcMap、javaScripts API相关操作的更多相关文章
- InfluxDB学习之InfluxDB的HTTP API写入操作
HTTP API也有两种操作:写入和查询,本文就先给大家介绍一下 InfluxDB的HTTP API的写入操作方式. 在InfluxDB学习的上一篇文章:InfluxDB学习之InfluxDB ...
- Python学习,第四课 - 字符串相关操作
这次主要说说Python中字符串的使用方法详解 capitalize 首字母大写 print('chengshou'.capitalize()) #输出结果:Chengshou title 修改成标题 ...
- 【原】iOS学习之苹果开发者账号的相关操作
1.苹果开发者账号分类 按价格分类 免费 ① 个人申请账号 仅可以用于真机调试 ② 院校账号 仅可以用于真机调试 通过苹果认证的高校可以使用 99$ ① 个人账号 ② 企业(公司)账号 申请所需的条件 ...
- 【前端学习笔记】JavaScript JSON对象相关操作
//JSON方法 //JSON.parse(); var json = '{"name":"zj","age":23}'; JSON.par ...
- MySql学习笔记【四、数据相关操作】
CURD--增改查删 创建数据 INSERT [INTO] tb_name [(col_name,...)] VALUES(val,..) 若列名缺省,表示插入全部列,也可指定部分列名 如: INSE ...
- MySql学习笔记【二、库相关操作】
命令规范 关键字.函数名称大写 数据库.表名.字段名小写 语句须以分号结尾 切换使用数据库 USE database_name 如:USE test 查看数据库列表 SHOW {DATABASES|S ...
- InfluxDB学习之InfluxDB的HTTP API查询操作
在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...
- Drools 查询学习
Drools 查询学习查询以 query 关键字开始,以 end 关键字结束,在 package 当中一个查询要有唯一的名称,查询的内容就是查询的条件部分,条件部分内容的写法与规则的 LHS 部分写法 ...
- openlayers4 入门开发系列之地图属性查询篇(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
随机推荐
- Groovy 设计模式 -- 享元模式
Flyweight Pattern 享元模式, 将对象的相同属性, 以节省内存为目的,存储为一份公共对象, 所有对象共用此分对象. The Flyweight Pattern is a pattern ...
- NTFS权限笔记 2017-12-4
NTFS权限:(文件或文件夹右键属性--安全--ACL) 1.文件系统类型: NTFS:支持单个文件大于4个G,支持文件权限设置 FAT32:不支持单个文件大于4G,不支持文件权限设置 2.取消权限继 ...
- [简洁]JavaScript中添加、移除、移动、复制、创建和查找节点元素
查找: document.getElementsByTagName通过标签名获取元素,不论有多少个都返回元素集合. document.getElementsByClassName通过类名获取元素,同上 ...
- Educational Codeforces Round 55 (Rated for Div. 2)
D. Maximum Diameter Graph 题意 给出每个点的最大度,构造直径尽可能长的树 思路 让度数大于$1$的点构成链,考虑是否能在链的两端加度为$1$的点 代码 #include &l ...
- C#获取应用程序路径
string s = Environment.CurrentDirectory; //需添加Forms.DLL s = System.Windows.Forms.Application.Startup ...
- JS获取当月第一天和最后一天
/** * 获取当前月的第一天 */function getCurrentMonthFirst(){ var date=new Date(); date.setDate(1); return date ...
- Problem B: Battle Royale(简单几何)
题目链接: B - Battle Royale Gym - 102021B 题目大意:给你两个坐标,表示起点和终点,然后给你两个圆,第一个圆包含两个圆,然后问你起点到终点的最短距离(不经过第二个圆 ...
- thymeleaf时间格式化
Thymeleaf模板时间格式表达式 ${#dates.format(date, 'dd/MMM/yyyy HH:mm')} 例如: <input name="enroDate ...
- LeetCode第十四题-字符串数组中最长的共同前缀
Longest Common Prefix 问题简介: 编写一个函数来查找字符串数组中最长的公共前缀字符串,如果没有公共前缀,则返回空字符串"" 举例: 1: 输入: [“xwq” ...
- C++ 变长模板参数
转载自: http://www.cnblogs.com/liyiwen/archive/2013/04/13/3018608.html C++11 语言核心的改进中,最为关注的有 rvalue ref ...