因项目需要,想要在属性查询的时候连同相关的图片一并查出来,但是因为要查询的图层众多,且字段不固定,而且还要方便后期维护,因此一个个单独配置并不是最优的解决方法

为实现这个功能,我想到如下几种解决方法

从后期系统维护方面考虑

数据方面:

一:最原始的方法,数据不进数据库,即不入Oracle或postgres等数据库,那么发服务则是动态服务或者是切片服务,那个shp要素需要添加图片或者更改图片,需要重新将数据处理好之后重新发服务,数据量如果小的话还可以,重发服务,不论是切片还是动态,都相对快,如果数据量大,则十分不方便,耗时太久,需要在shp属性中添加的是图片的url,文本类型

二:数据入库:即gdb或Oracle或postgres,发要素服务或切片服务都可以,要素服务最大的好处就是数据入库,改了数据中某一个属性,要素,都不需要重新发服务,适合数据量大,便于管理,节省服务器空间。此时图片数据存储就有两种方式了,

①同上面相同,存储图片路径,

②存储栅格数据,即图片

数据未入库之前,能存储的数据格式如下:

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

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

选择一个图片,点击确定即可,稍等片刻,出现如图所示界面。然后发服务即可,同样是要素服务或切片服务,此时有一个问题我没有解决,已经发了要素服务的数据是不可以在arcmap中编辑的,但是在数据库中是如下图所示

,只有图片名称,我不知该如何编辑及预览。

代码方面

方法一

没有图片之前的属性查询界面如下

是表格形式,关键代码为:,无需匹配任何字段,方便灵活,缺点是对不懂地图的人不友好,不明白查出来的字段是什么意思,而且对于上面在属性字段中存储照片的方式,该种写代码的方式不能显示出图片,并不能达到预期的效果。

方法二:思路:新建一个数组c,将要素所有内容获取,并push进去,判断有无存储图片地址的字段,若有,在push进去一个img标签,写上src,在调用content的时候,用c.join将数组分割,

关键代码如下

效果如下

达到目的,虽然是个姑娘,但我其实还是直男审美,后续继续美化

20 由属性查询学习到的ArcMap、javaScripts API相关操作的更多相关文章

  1. InfluxDB学习之InfluxDB的HTTP API写入操作

    HTTP API也有两种操作:写入和查询,本文就先给大家介绍一下 InfluxDB的HTTP API的写入操作方式.     在InfluxDB学习的上一篇文章:InfluxDB学习之InfluxDB ...

  2. Python学习,第四课 - 字符串相关操作

    这次主要说说Python中字符串的使用方法详解 capitalize 首字母大写 print('chengshou'.capitalize()) #输出结果:Chengshou title 修改成标题 ...

  3. 【原】iOS学习之苹果开发者账号的相关操作

    1.苹果开发者账号分类 按价格分类 免费 ① 个人申请账号 仅可以用于真机调试 ② 院校账号 仅可以用于真机调试 通过苹果认证的高校可以使用 99$ ① 个人账号 ② 企业(公司)账号 申请所需的条件 ...

  4. 【前端学习笔记】JavaScript JSON对象相关操作

    //JSON方法 //JSON.parse(); var json = '{"name":"zj","age":23}'; JSON.par ...

  5. MySql学习笔记【四、数据相关操作】

    CURD--增改查删 创建数据 INSERT [INTO] tb_name [(col_name,...)] VALUES(val,..) 若列名缺省,表示插入全部列,也可指定部分列名 如: INSE ...

  6. MySql学习笔记【二、库相关操作】

    命令规范 关键字.函数名称大写 数据库.表名.字段名小写 语句须以分号结尾 切换使用数据库 USE database_name 如:USE test 查看数据库列表 SHOW {DATABASES|S ...

  7. InfluxDB学习之InfluxDB的HTTP API查询操作

    在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...

  8. Drools 查询学习

    Drools 查询学习查询以 query 关键字开始,以 end 关键字结束,在 package 当中一个查询要有唯一的名称,查询的内容就是查询的条件部分,条件部分内容的写法与规则的 LHS 部分写法 ...

  9. openlayers4 入门开发系列之地图属性查询篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

随机推荐

  1. 常见的游戏AI技术对比(FSM,HFSM,BT,GOAP,HTN,Utilitay,机器学习)

    最近研究的内容,比较懒还没写文章,先占个坑,过几天补

  2. java8 按对象属性值分组

    Map<String, List<User>> userMap = list.stream().collect(Collectors.groupingBy(User::getG ...

  3. C++设计模式——解释器模式

    解释器模式 在GOF的<设计模式:可复用面向对象软件的基础>一书中对解释器模式是这样说的:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子.如 ...

  4. OpenCV3编程入门-读书笔记1

    一.OpenCV概述 1.OpenCV全程Open Source Computer Vision Library,即开源计算机视觉库.它是一个跨平台的开源计算机视觉库,可以运行在windows.lin ...

  5. java.lang.ClassNotFoundException: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter

    原因是Spring 3.x 和4.X处理JSON的一个类不一样,而这个东西又配置在xml文件中,所以编译时又无法发现 spring3.x是org.springframework.http.conver ...

  6. 在普通js文件里引入vue实例的方法

    首先是我是写了一个 Loading 插件然后 是挂在打vue.prototype 原型上的. 在main.js中use使用了这个插件. 至此vue原型是就被我挂上 $loadding方法了. 然后我想 ...

  7. django-admin.py startproject testdj 失败 没有工程文件夹

    今天第一次用django创建工程时一直没有反应,没有期望的文件夹出现 第一种:网上查找了一下,发现是因为py文件的默认打开不是python.exe,而是编辑器 解决方法:先随便找一个py文件,点击右键 ...

  8. Jmeter性能测试之Monitor监控(四)

    使用Jmeter(该篇文章使用的版本最高为3.1, 3.1+的版本存在兼容性问题)做性能测试, 要监控服务器硬件资源消耗情况, 可以使用扩展插件完成. 1. 服务端插件下载agent, 点击这里 , ...

  9. RC terms.

    ETA: estimated time of arrival DEA: 1-Leg: 2-Leg: FCC: L10N: LocalizatioN i18N: InternationalizatioN ...

  10. python 2.7 数据结构: 基础面试总结

    python中基础的数据类型包括: 1 Number(数字) 2 String(字符串) 3 List(列表) 4 Tuple(元组) 5 set(集合) 6 Pictionary(字典) 按照可变数 ...