我想做一个worldmap那样的地图。这是哈佛大学主导的一个世界地图平台,数据非常详实,其中有一个子项是chinaxmap,就是中国历史地图平台。
这个平台上的数据来源于CHGIS,即中国历史GIS项目,复旦历史地理系的禹贡网提供数据下载,http://yugong.fudan.edu.cn/views/chgis_data.php。Worldmap平台上也提供数据下载:http://sites.fas.harvard.edu/~chgis/data/chgis/。
Worldmap平台上的数据格式已经更新成shp格式了,不过禹贡网上的数据格式还是mapinfo的格式,可以在MapInfo上面通过数据转换转成shp格式。
Chinaxmap的平台地址是:https://worldmap.harvard.edu/maps/chinaX
这个平台长这样,对历史研究来说很有用处,唯一美中不足的是英文。
想从无到有做出这么样的一个平台出来,困难肯定有。
那么就从现在开始做吧!
因为复旦禹贡网维修中不能访问,所以我的数据从worldmap平台下载:https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/PDGOZ0
下载的是V4_Data_Archive.zip,解压后,用shapefiles文件夹中的数据做测试。
选用v4_1820_cnty_pts_gbk.shp、v4_1820_lks_pgn_gbk.shp、v4_1820_rvr_lin_gbk.shp三个文件,正好凑齐点线面,而且文件后缀gbk,指的是GBK编码,有的文件后缀是utf,自己看看吧,我的电脑GBK编码是正常的,但是utf编码的shp文件打开字段里中文都是乱码,这个应该跟电脑环境有关。
本篇想要实现的是,在前端,点击要素,能跳出属性窗口。有点像arcmap窗口中用识别工具点击要素,跳出识别窗口。
目的设定完了,开始进行实践。
1.发布要素地图服务。
选好数据后,首先要做的是发布要素地图服务。
这个可以不赘述了。
发布要素服务按这篇教程做就可以:http://blog.youkuaiyun.com/lovecarpenter/article/details/52462207
相关补充问题见这篇:http://blog.youkuaiyun.com/sinat_41310868/article/details/79417757
Arcgis10.4以上的版本就不支持server2008了,要升级到2012以上。
看看自己安装的是什么版本的,然后先看补充问题那篇,结合着第一篇安装完server数据库后,再做发布要素服务的工作。
照着这两篇博文,发布要素服务就应该没什么问题了。
注意事项是:
A/可以在sde数据库里新建一个要素集,保证坐标系一致:Xian_1980_GK_Zone_19
WKID: 2333 权限: EPSG。
B/选择要素集,右键——管理——注册版本——勾选“注册所选对象并将编辑内容移动到基表”。
C/把sde数据库中的数据加载进入arcmap中。
D/配置符号,如图,把图层属性都设置一下,三个都设置。NAME_CH是简体中文的名称,保存工程文件mxd。
E/文件——共享为——服务,记得挑上Feature Access。分析,发布。
2.ArcGIS JavaScript点击查询,气泡,InfoTemplate。
在ArcGIS JavaScript开发帮助手册中,对Graphic有介绍:
Geometry定义了对象的形状,Symbol定义了图形是如何显示的,Graphic可以包含一些属性信息,并且在Javascript中还可以使用infoTemplate(一个InfoTemplate包含标题和内容模板字符串,该内容模板字符串用于将Graphic的属性转换成HTML的表达式)定义如何对属性信息进行显示,最终的Graphic则是被添加到GraphicsLayer中,GraphicsLayer允许对Graphics进行事件监听,对于Graphic的描述可以用一个数学表达式来表示:
Graphic=Geometry+Attribute+Symbol+infoTemplate