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 官网在线例子 ...
随机推荐
- Node.js实战项目学习系列(4) node 对象(global、process进程、debug调试)
前言 在之前的课程我们学习了Node的模块化规则,接下来我们将学习下 Node的几个新特性:global ,process进程,debug调试 global 跟在浏览器中的window一样都是全局变量 ...
- mysql root password
"""centos:mysql忘记root密码解决 1.修改MySQL的登录设置: # vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-gra ...
- python中jsonpath模块的运用
1. jsonpath介绍用来解析多层嵌套的json数据;JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, ...
- ng-app&data-ng-app
来源stackoverflow 区别:在验证html5时,ng-app会抛出一个错误,而对带data-前缀的特性不会抛出.其它方面这两个属性一样.
- java.util.zip.ZipException: invalid entry size
启动maven项目时报java.util.zip.ZipException: invalid entry size (expected 7612 but got 5955 bytes) 可能是mave ...
- Emacs Org-mode 3 表格
Org 使用内置的表格编辑器.可以进行简单的表格编写和计算. Org中的表格 第一个非空字符“|” 视为表格的起始位置,后面的“|” 视为字段分隔符. 3.1 生成表格 编写表格时,可以将字段先写好, ...
- TCP常见的定时器及三次握手与四次挥手
1.TCP常见的定时器 在TCP协议中有的时候需要定期或者按照某个算法对某个事件进行触发,那么这个时候,TCP协议是使用定时器进行实现的.在TCP中,会有七种定时器: 建立连接定时器(connecti ...
- Java List根据对象的某个属性合并list
package com.test; import java.util.ArrayList; import java.util.List; public class FileTest { public ...
- .net core2.x - 关于工作单元(UnitOfWork) 模式
概要:在搭建框架,顺手说下写下,关于unitofwork,可能你理解了,可能你还不理解,可能与不可能不是重点,重点是感兴趣就看看吧. 1.工作单元(unitofowork)是什么(后面简写uow)? ...
- JavaScript 动态选择方法和属性
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...