作为Mapserver的工程
上次我们谈到了为什么一些标准 地图服务器 以及安装基础知识。 现在,让我们在恰帕斯州朋友的地图上演练一下,看看它的运作情况。
安装在哪里
安装Apache后,默认的MapServer发布目录是直接位于C:/ OS上的OSGeo4W文件夹,
在内部,有不同的文件夹,其中包含根据应用程序安装的应用程序,但是用于发布的文件夹必须位于apache中。 在这种情况下,该文件夹称为gis。
- 然后在里面,数据文件夹包含图层,正射影像等。
- 在etc文件夹中,有用于标签的真字体,扩展名为.ttf。 另外,这里还有一个提升它们的txt文件和另一个定义符号的文件。
- 最后在文件夹httdocs中去提高服务的网页。
网页
在示例中,我将使用上次显示的情况。 它基本上包含一个索引文件,该文件重定向到phtml扩展名,而这又引发了建立在php和地图之上的功能。 文件夹包含从页面链接的图像。
如果我们看一下,phtml就是从表构建的shell,并调用mapscript / php函数。 您应该使用以下方法起床:
http://localhost/gis/gispalenque.phtml
结果如下:
- 到中心的功能 GMapDrawMap(),
- 在右边的电话 keymap GMapDrawKeyMap(),
- 下面的比例尺 GMapDrawScaleBar(),
- 并且在部署功能的情况下,相对于列表框的条件 如果(!IsHtmlMode())echo“ 做出决定:ZOOM_IN,ZOOM_OUT,RECENTER,QUERY_POINT。
已经运行,显示如下:
.map文件
Mapserver出版物的组合是Apache提出的,它发送php通过 mapscript 然后通过外壳发出。 但是大多数科学都放在.map文件中,不要与Mapinfo,Manifold或Mobile Mapper Office生成的扩展名相同的文件混淆。
这些.map是文本文件,其中包含脚本形式的地图。 可以使用诸如Quantum GIS之类的桌面程序创建这些文件,如果您注意到其中一个用于主地图,一个用于Keymap,两个用于OGC wms和wfs服务。 让我们看看mapscript的工作原理:
MAP
名称PALENQUE_DEMO
状态开
SIZE 600 450
SYMBOLSET ../etc/symbols.txt
所有地图PALENQUE的EXTENT 604299 1933386 610503 1939300 #LIST
#EXTENT 605786 1935102 608000 1938800 #SOLO 01部门
单位计
SHAPEPATH“../data”
透明的
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt
- MAP表示启动脚本
- STATUS,表示默认地图是否开启
- SIZE是显示器的大小
- SYMBOLSET显示符号的路由
- EXTENT是显示坐标。 #符号用于标注
- 单位单位
- SHAPEPATH,层的路由
- 所有结尾都将以END命令结束
在里面,代码以命令行开头,以END结束,例如最小和最大比例; 临时图片目录:
WEB
MINSCALE 2000000
MAXSCALE 50000000IMAGEPATH“C:\ OSGeo4W / tmp / ms_tmp /”
IMAGEURL“/ ms_tmp /”
结束
比例尺:
比例尺
IMAGECOLOR 255 255 255
品牌
颜色0 0 0
体积小
结束
SIZE 300 5
颜色255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
UNITS公里
区间3
状态开
结束
栅格图层:从数据文件夹中的tiff出现在背景中,并在列表中带有“ Orthophoto”的描述:
撕拉式面膜真的很方便
名称orthophoto
元数据
“描述”“OrtoFoto”
结束
类型的光栅
状态关闭
DATA“C:\ OSGeo4W / apps / gis / data / ortofotoGral.tif”
#OFFSITE 0 0 0
结束
一个多边形的shp层,根据标准进行分组,使用无数字体标签,大小6,5缓冲区的黑色和白色边缘提取html模板上的某些数据...
撕拉式面膜真的很方便
NAME sector02Zone
类型多边形
状态关闭
透明度50
范围607852 1935706 610804 1938807 METADATA
“说明”“价值部门02的主题”
“RESULT_FIELDS”“MsLink Cve_Mz Cve_Pred支持区域边界值”
结束
数据PALENQUE_SECTOR01
TEMPLATE“ttt_query.html”
公差5
#TOLERANCEUNITS像素
LABELITEM“VALOR”
CLASSITEM“VALOR”
LABELCACHE ON
CLASS
SYMBOL 1
颜色128 128 128
OUTLINECOLOR 0 0 0
名称“ZonaNULL”
EXPRESSION([VALUE] = 0)
品牌
ANGLE AUTO
颜色0 0 0
字体sans
TYPE TRUETYPE
位置cc
部分虚假
BUFFER 5
SIZE 6
OUTLINECOLOR 200 200 200
结束
END #class 0值
CLASS
SYMBOL 3
颜色255 128 128
#COLOR -1 -1 -1 #SIN FILLING
.... 所以关闭
结束
END #Class值
END#层
在结论
因此,尽管所有内容都在.map中,但使用mapserver虽然很简单,但变得复杂且对大型作业非常有限。 最大的缺点是,一切工作都是步行完成的,例如定义主题中的每种颜色,这就是为什么出现了诸如CartoWeb之类的工具的原因,该工具可在Mapserver上运行,但带有内置的插件和示例,这些示例和特性使该原始版本看起来像的 自述第一:
- 使用AJAX分开框架,以便单独刷新它们
- 解析代码,只要脚本根据可参数标准重写.map
- 动态回滚,无需刷新,就好像是闪存层
- 在线向量编辑,立即缓存写入
- 以矢量形式下载图层
- 导出到Google地球
- 从部署生成PDF
接下来我们将看看CartoWeb,在这里我将链接保留为主要示例。
有一种方法可以让标准的phtml模板输出,谢谢
你好,
我试图从.map调用一个图层,如下所示:
撕拉式面膜真的很方便
NAME考场
类型点
CONNECTIONTYPE OGR
连接#“virtual.ovf”
=
XXXXX
执行.......
eess_id
wkbPoint
WGS84
=
我的问题是 DSN 服务引起了问题:请求 GetCapabilities 时,它正在返回数据库密码......我可以调用文件以避免“泄露”密码还是 DSN 错误???? 谢谢!
MapServer是一个受欢迎的开源项目,其目的是通过互联网显示动态空间地图。 安装的驱动器是映射到使用NTFS文件系统的卷上的空文件夹的驱动器。 安装的驱动器可以作为任何其他驱动器使用,但它们被分配驱动器路径而不是驱动器号。