webgis入门实战
需求来源
emap模块学习和总结,并分享新人
概论
地图基本要素
- 比例尺
单位地图长度与实际距离的比例。如1:500指地图上1cm,实际距离5m,对应0.002则称为分辨率。通过鼠标滚轮或导航调整。 - 方向
上北下南,左西右东。若旋转地图,则需根据朝北的方向标调整视角。目前没有方向调整功能。 - 图例和标注
图例是用符号、图案、颜色等描述地形、水土、交通、建筑等,标注则是说明性的文字、数字。
目前大华地图的基本业务就是在图例和标注上进行,之后章节称为点位。
投影体系
- 地理坐标系
用三维球面来定义地球的位置,水平线(或东西线)是等纬度线或纬线,垂直线(或南北线)是等经度线或经线。
- 经度
目标点做垂直于赤道的线的交点,并与地心相连的线,此线和本初子午线的夹角为经度。 - 纬度
目标点做垂直于赤道的线的交点,并与地心相连的线,此线与目标点和地心连线的夹角为纬度。
- 经度
- 地心坐标系
是一种地理坐标系,地球在一个从地心开始测量的右旋XYZ坐标系(3D笛卡尔)中被建模为球体或旋转椭球体,X轴指向本初子午线、Y轴位于赤道平面上与X轴成90度,Z轴指向北极点。
此椭球主要参数有长半轴、短半轴和扁率。
WGS 84坐标系为1984年美国国防部制图局为统一世界大地坐标系统而建立的地心坐标系。
其参数为长半轴(a)为6378137,短半轴(b)为6356752.314245179,,扁率(f)为298.257223563,f=(a-b)/a。 - 投影坐标系
是将三维的地理坐标系投影到二维的直角坐标系平面上,采用等角、等积、等距等方式的地图投影。 - 墨卡托投影
是正轴等角圆柱投影。假想地球被围在一个中空的圆柱里,其基准纬线(赤道)与圆柱相切接触,再假想地球中心有一盏灯,把球面上的图形投影到圆柱体上,再将圆柱体展开,就得到了一个墨卡托投影。该投影没有角度变形,经纬为平行直线,但其长度和面积变形明显,基准纬线较小,而往两极逐渐增大。 - Web Mercator(web墨卡托投影)
是一个投影坐标系统,其基准面是WGS 84。它不是严格意义的墨卡托投影,在投影过程中它将椭球体近似为正球体来做投影变换,即没有扁率,在web领域被广泛应用。百度用的EPSG:3857就是WGS 84坐标系的一个子类,而谷歌的EPSG:900913则是自行设置,得不到官方认证的ID。(900913=google)。 - 坐标转换
通常web墨卡托投影地图范围经度是-180~180,纬度-85.0511~85.0511,这是因为墨卡托投影两极变形到无穷远。得排序两极区域,剩下区域投影侯为一个正方形,范围为-20037508.34~20037508.34。
由经纬图可得坐标转换公式:
经纬->地理:
x = lon*20037508.34/180
y = log(tan(90+lat)*PI/360)/(PI/180)*20037508.34/180
地理->经纬:
lon = x/20037508.34*180
lat = 180/PI*(2*atan(2*exp(y*PI/180))-PI/2)/20037508.34*180
(x、y为地图坐标,lon、lat为经度、纬度)
地图底图类别
二维地图
分为矢量图和光栅图。以二维平面图片作为底图。点位业务集中在二维坐标X和Y,和对应在哪张图的mapID。- 矢量图
是一种放大不失真、不变色、与分辨率无关的图。目前U3.22的地图接入的矢量图模式有 百度在线、百度离线,谷歌在线、谷歌离线,超图。
矢量图地图的底图是根据中心点和地图边界大小读取对应N张碎片图紧密拼凑而成的,这些碎片图又称瓦片。 - 光栅图
又称位图,是由以像素为基本单位的无数色彩点组成的图案。两种区别在于空间的连续和离散。
目前U3.22的地图接入的光栅图模式有 光栅、光栅切片。
光栅图则是使用自行上传图片作为底图。
光栅切片则是模仿矢量图模式,将自行上传的图片进行切片,切成大量瓦片,拼凑出底图。
- 矢量图
2.5D
有立体投影效果的二维图片作为底图。北方标指向右上角45度,难点在于投影坐标转换,U3.11支持edushi,U3.22目前不支持。三维地图
分为平面三维和球面三维。以三维的虚拟现实模型数据作为底图。目前只能在ie内使用,与二维底图业务不同在于点位拥有额外的Z轴坐标。- 平面三维
老版本的三维地图,占用内存大,容易崩溃。点位的X和Y和二维占用数据库表同一字段,所以地图模式切换时会清空原模式的点位信息。 - 球面三维
新版本的三维地图,由大基线维护,目前功能较少,但实现了单独进程化,基本不大会崩溃。点位的XYZ采用独立的GPS_X_3D等字段,和二维完全分开,切换模式可以不清空各自点位数据。
- 平面三维
项目搭建
外在基础
- Gis服务器
用于存放瓦片、路网信息等数据。 - 地图瓦片开源api
百度、谷歌等提供的瓦片引擎URL和经纬校验。 - web端api
开源插件openlayer,目前大华地图使用superMap,用于引入各类地图,实现地图基本功能和点位相关功能。
SuperMap内网API地址:http://172.7.55.35:8090/iserver/
外网:support.supermap.com/datawarehouse/webdochelp/7.0..0/iclient/javascript/files/SuperMap/Map-js.html
项目配置
- 配置文件路径
二维地图和平面三维在同一项目Emap_U3.22中,球面三维单独一个项目,目前由大基线维护,U3.22现接入球面三维,而废弃平面三维。U3.22地图模式设为三维时直接跳转至Emap3d_Trunk的地图url。
两个项目配置文件互不干扰,都分别有两个配置文件,在项目/src/main/resources/下,分别是config.properties(用于基本系统配置),config_userDefined.properties(用于用户自定义配置,如地图模式),下表为配置文件放置目录:
项目名 config.properties config_userDefined.properties
Emap_ U3.22 {0}/webapps-conf/emap/ {0}/webapps-conf/userDefined/emap/
Emap3d_Trunk {0}/webapps-conf/emap3d/ {0}/webapps-conf/userDefined/emap3d/
{0} 即tomcat配置路径,下表为目前不同系统U3.22的 {0} 路径:
Windows Linux
d:/tomcat/bin /opt/tomcat
(设windows下tomcat安装目录为d:/tomcat) - 三维地图模型、地形数据的linux服务器部署
windows系统无法配置三维数据。
新增了tomcatkelan,数据放在/opt/kelan/modelData,启动tomcatkelan后,浏览器输入http://IP:8088/kelan/看是否成功启用,并在配置系统端模型、地形数据输入该url。切换地图模式到三维会启动tomcatkelan,切出三维会关闭。
地图使用
地图进入
- 地图管理端
输入平台ip进入DSS管理端->视频业务->地图管理。
也可在浏览器输入URL :
http://IP/emap/admin?loginName={0} &loginPass={1}
其中{0}为登陆名,{1}为该加密后的密码,分别对应在数据库表sys_user中的LOGIN_NAME和LOGIN_PASS。如