论文部分内容阅读
摘 要:随着Internet的快速发展以及“智慧城市”的加速建设,基于Web的地理信息服务趋于普遍,受关注日益增加。在这样的一种社会浪潮下结合居民日常生活需要,文章以“每日的菜市场信息发布”为主要内容设计了基于B/S模式的网络GIS服务平台。该系统以SQL server的数据管理和ArcGIS Server的GIS服务发布为基础,并结合Google地图使用JavaScript 的开发方式构建起用户的信息查询平台。系统的使用简单容易,服务贴近生活。菜市信息WebGIS系统的建设,一方面对于居民日常生活具有重大意义,另一方面对于“智慧城市”的建设具有推动作用。
关键词:菜市场信息;B/S模式;GIS服务
随着“智慧城市”的建设,城市中的服务职能部门更多需提供数字化以及智能化的民生服务。近年来,已有越来越多的服务部门步入了“智慧城市”的建设軌道,如BRT公交车站的实时预测公车达到时间的系统,这些系统的建设,对于城市服务的便利化以及居民生活水平的提高都具有重大意义。购物行为是居民生活的重要组成部分之一,而几乎每日都要进行的“买菜”行为是最重要的购物行为之一。买菜行为的主体大多是闲置在家的中老年人,也有相当一部分的“上班族”甚至是未成年人,可以说,买菜行为的主体具有多样性。买菜行为是自由度及复杂度较高的行为,在买菜行为中,最重要的莫过于对“菜价”(Price)和“买菜成本”(Cost)的综合评价,如何在成本较低的情况下买到相对便宜的菜,成为最受关注的问题。然而,买菜行为虽涉及的范围广且直接关乎于城市居民的日常生活,但由于缺乏足够的投入和关注,至今未有能够评价“菜价”的WebGIS系统。笔者认为,菜市信息WebGIS系统的建设,一方面对于居民日常生活具有重大意义,另一方面对于“智慧城市”的建设具有推动作用。
一、需求分析:基于广州东山龟岗菜市场的调研
为了大致了解不同人群对菜价变化的关注程度,于6月21日对越秀区东山龟岗市场的顾客进行抽样访谈,发现将近九成的顾客表示会根据菜价的波动有选择的进行采购;除了菜价的高低对顾客采购选择有影响外,近八成顾客表示菜肉的质量与菜价高低同样重要,可见菜肉的质量同样会制约顾客的采购行为。访谈的过程中,小组成员对早上7点至8点时段出入龟岗市场的人流进行粗略统计,其中50岁以上的人群占百分之七十以上,结合问卷的提供的信息发现,这个年龄段的顾客对菜价的波动最为敏感,对菜肉的质量的要求最高。
针对中老年这一消费群体以及这个群体关注的菜价与菜肉质量这两个焦点,小组围绕这两个焦点进一步分析,发现中老年群体普遍选择离家最近的几家市场进行采购,最终选择的菜市场与菜价和菜肉质量的高低有关。在这里,顾客对菜价与菜肉的质量的评估,是建立在长期的购物经验的积累上,但是这种经验往往带有较强的主观性,归根到底是由于顾客无法及时了解每天每个菜市场各种菜价的变化和对菜市场的不同摊位出售的菜肉质量这两个原因所导致。
针对中老年顾客对菜价变化的敏感和菜肉质量的关注,但无法实时了解菜价动态更新的现状,小组根据这一事实进行系统功能开发,拟建设广州市越秀区“每日菜价”地理信息系统,通过各菜市场管理中心统计并发布的每日菜价数据进行菜价实时查询,建立系统的核心功能“每日实时菜价查询”与“特定时段菜价查询”满足顾客对菜价动态更新的了解;建立系统的另一个核心功能“菜市场、摊位的留言及评价”,方便顾客对市场各个摊位菜肉质量的了解;并建立“电子地图操作与管理”、“菜市场定位与导航及基础信息查询”、“菜市场内部摊位定位”、“导航及基础信息查询”与“确定用户所能接受的买菜时长及范围”5个地图辅助功能,方便用户查找自己附近的菜市场。
二、系统结构设计
系统借助于ArcGIS Server地理信息服务平台以及SQL Server 数据管理工具等,通过JavaScript 的客户端程序的开发,构建了基于Web服务的用于市场每日菜价信息发布的GIS系统,实现了市场菜价的网上及时更新与查询、,购买点定位与指引、菜价的点评等功能。
三、系统流程设计
系统的设计过程分为数据的获取与处理、功能服务的开发以及服务的发布等。
(一)数据的获取与处理
数据是GIS系统的基础,而作为WebGIS系统的菜市场查询系统,数字形式的数据收集、处理与入库成为了系统设计的重要流程,包括空间数据和属性数据的处理。
1. 属性数据的处理
(1)属性数据的收集:主要是通过网上的资料查询和实地的调查获取,主要为菜市场的信息情况;此外,在实地的调查时候通过摄影机获取市场的图片数据。
(2)数据的建模与建库:通过E-R图等工具建立数据的概念模型,并根据转化得到的逻辑模型利用SQL Server建立数据库。同时建立相应的数据字典。
2. 空间数据的处理
(1)数据的获取:通过截取google地图的街道数据得到区域内的街道空间分布的栅格图片,此外,通过网上和相关部门收集各个市场内部的结构栅格图。
(2)栅格数据的配准:打开ArcGIS 10.0,利用Desktop 工具进行街道栅格图的配准。为了让地图分析的结果能够更好地与作为底图的谷歌地图叠合显示,在投影的选取上使用墨卡托投影方式。而在配准的过程中,则通过选取控制点并将其与对应的坐标进行匹配实现地图图层的校正。
(3)建立图层和要素的表结构设计:通过ArcCatalog工具新建数字化图层,并根据分析功能所需要的数据设计数据表的结构。
(4)栅格图的矢量化编辑:加载新建的数字化图层后,通过人工的方式进行栅格图的矢量化。需要矢量化的数据主要包括线状结构的街道以及以中心点作为其分布位置的菜市场,得到的结果为街道的线状图和菜市场分布的点状图,以及组织得到的以支持分析的数据集。 (5)数据的转换:数字化以后,利用ArcSDE中间层将空间数据存放于SQL Server的空间数据库中作为空间分析的数据源。
(二)服务发布
系统借助Web 服务器和ArcGIS Server并且使用ArcCatalog实现地图功能服务的发布,用户可以在客户端通过浏览器输入需要的功能请求,然后通过Web服务器和GIS 服务器提供的服务返回请求结果。
(三)功能服务开发
采用JavaScript在Html网页上进行开发,实现对google街道地图的调用,以及ArcGIS Server分析服务功能的访问和使用。
四、系统功能模块设计
用电子地图技术,在网上构建一个城市每日菜价WebGIS系统,通过访问城市菜市场WebGIS网站,可满足用户对菜市场每日更新的各类菜价的实时查询、菜市场及摊位的路径指引、同一菜市场内部菜价比对、不同市场菜价横向比对、菜场及内部各摊位留言评分等的需要,功能介绍如下。
(1)电子地图操作与管理:提供缩放、居中、移动、图层、打开、保存、专题图、投影、视野、信息等工具。(2)菜市场定位、导航及基础信息查询:根据名称、地址、电话等信息实现区域内菜市场模糊或精确的面板查询,结合用户设备位置,通过网络分析查询用户至各菜市场路线导航功能,并在地图上显示路线信息。(3)菜市场内部摊位定位、导航及基础信息查询:根据名称、地址、电话、出售食物种类等信息实现各菜市场内各摊位模糊或精确的面板查询,结合用户设备位置,通过网络分析查询每日摊位信息,并指引用户前往,在地图上显示路线信息。(4)确定用户所能接受的买菜时长及范围:系统首先询问用户所能接受的买菜时长(如家庭主妇们所能接受1小时,白领们所能接受仅半小时),通过用户买菜时长结合网络分析可划定用户买菜范围,以下菜价查询、菜市场导航等功能都基于此范围而展开。(5)每日实时菜价查询:根据各菜市场管理中心统计并发布的每日菜价数据进行菜价实时查询,一方面可查询某市场各摊位菜价,另一方面可查询搜索范围内各菜场(同一物品)菜价,进行各菜场横向比对。系统根据用户所需要购买的菜的品种及用户距菜市场距离等因子进行优化方案的计算和推荐。(6)特定时段菜价查询:用户可查询某菜市场内某菜价在时段内的变化规律(如从昨日至今日下降或上升的趋势),也可查询区域内各菜市场在该时段内平均菜价的变化规律,根据此趋势用户对菜价的近期变化一目了然。(7)菜市场、摊位的留言及评价:用户可对各菜场及各摊位进行留言和打分,该信息在系统中共享,可作为其他用户选择菜场、摊位的依据。
五、系统开发关键技术设计
(一)前端开发
1. 开发方式
ArcGIS Server功能的开发通常可以通过使用JavaScript API 、Flex API、Sliverlight API、Web ADF等方式实现。而在这些客户端功能的实现方式中,JavaScript 作为比较流行和方便的开发手段,是小组成员了解相对较多的一种网页技术。此外,JavaScript在客户机上执行,大大提高了网页的浏览速度和交互能力;同时,Google Map API的应用程序接口集合调用JavaScript脚本语言能够实现google 地图的网页嵌入,并且使用ArcGIS API for JavaScript可以在一个Web应用程序中访问多个不同的服务器的服务,使得菜市场信息发布系统可以方便地将用户功能请求结果叠加在调用的google 地图上面,所以,在开发中选择使用JavaScript作为系统功能实现的手段。
2. Google地图的调用
Google地图提供的地图类型多样、街道信息详细,并且用户可以免费通过Google公司提供的Maps API进行自主开发,将其地图嵌入自己的网页,实现一些基本的操作;此外通过ArcGIS JavaScript ApI 的地图拓展程序应用接口可以将AreGIS Server的各种服务叠加进Google地图,进而实现复杂的GlS功能。基于以上的google 地图的好处,系统决定调用google 地图作为显示的底图。在Html网页上的头部通过添加代码:
<script type = “text/javascript” src =
“http://ditu.google.cn/maps?file = api&v = 2&key = abcdefg”>
</script>
使用包含google地图API所需要的所有符号和定义的JavaScript文件,其中使用的API版本为Google Map API V3。
而系统是以广州市越秀区作为菜市场信息发布网站功能实现的试点,其地理位置的经纬度为(23.131377,113.261503),所以在创建地图map对象并调用谷歌地图的时候,可以写进如下代码:
Var map = new GMap2(document.getElementById(“map_canvas”));
map.setCenter(new GLatLng(23.131377,113.261503),15);
将地图的中心位置确定在(23.131377,113.2615
03)广州越秀区的位置,同时采用15级别的地图以较清晰地显示街道信息。
此外,为了更好的对地图图层进行操作,使用addControl()的方法添加一些操作小控件;而对于图层类型的选择则通过setMapType()、addMapType()、removeMapType()方法来实现;通过GScaleControl則可实现比例尺控件的调用。 3. 地图叠加层实现
(1)菜市场点位的标注:为了将符合用户请求结果的菜市场在地图上标注出来,可地图上叠加点标记。而实现这一功能则使用GMarker进行标记的添加,核心代码如下:
Var point = new GLatLng(lat,lng);
Var marker = new GMarker(point);
map.addOverlap(marker);
(2)GIS空间分析结果图层的叠加:系统提供了根据用户输入的信息进行菜市场的导航功能,该部分需要利用数据库里面的街道矢量图层作分析。当用户根据自己的需求输入查询信息的时候,系统通过GIS Server 的分析功能实现路径的分析,然后把结果返回到客户端并将图层叠加在地图上。而图层的叠加可以通过ArcGIS Extension for the Google Maps API 来实现。这需要在引用地图拓展API,代码如下:
<script type = “text/javascript” src =
“http://serverapi.arcgisonline.com/jsapi/gmaps/?v =1.6”></script>
在此系统采用的是1.6版本的API。当获得GIS的服务分析后通过地图的URL获取资源并使用addOverlay()的方法实现图层的叠加。
(3)其他信息的显示:为了方便清楚的显示菜市场的信息,可以利用Google Map API中的GInfoWindows对象以浮动窗口的模式显示内容。
4. 地图分析与导航
系统可以根据用户的提供的时间成本进行菜市场的查寻和导航以及根据用户输入的位置进行菜市场摊位的定位和导航,这些功能需要对空间的矢量数据进行分析。在开发的时候,JavaScript API中的 RouteTask和ClosestFacilityTask等类来实现。
5. Ajax技术应用
为了提高用户的服务体验,降低在传统的网页浏览中用户的每一次请求都需要刷新所带来的时间消耗,以及减轻网络传输的负担,系统采用Ajax技术实现“异步”处理的机制。
在菜市场信息系统中,系统根据用户在页面上的请求执行相应的JavaScript代码并创建XMLHttpRequest,向服务器发送请求,服务器对请求作出的处理后将结果返回并执行相应的JavaScript 代码显示结果。通过Ajax实现“异步”处理的核心是JavaScript 中的XMLHttpRequest 对象,以下是创建该对象的方法:
Var Xmlhttp ;
If(window.XMLHttpRequest)
{
Xmlhttp= new XMLHttpRequest();
}
Else{
Xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
}
创建了XMLHttpRequest后,通过其的open和send方法向服务器端发送请求。服务器作出响应后,利用XMLHttpRequest 的onreadystatechange属性指定回调函数对获取的结果数据进行处理。
(二)服务器端的设计
服务器端包括Web 的服务和地图应用的服务。对于Web服务,系统借助Windows 环境下的IIS(Internet Information Services,互联网信息服务)来实现;而在地图应用的服务方面,由于ArcGIS Server是一个基于Web 的综合性GIS,功能强大且对小组成员来说也相对熟悉,因此系统的这部分功能实现由ArcGIS Server 提供的GIS 服务功能承担。
(三)数据组织管理
系统用到的数据包括:1.区域街道、菜市场分布以及内部结构的矢量空间数据。2.描述菜市场信息的属性数据和一些相片数据。3.通过调用的Google Map API得到的街道地图。在这些数据中,矢量数据通过ArcSDE 中间层存储于SQL Server数据库中;同时菜市场的属性信息也用选用SQL Server 作为存储的工具。而对于数据库的其他设计方面,则在实践测试的基础上,根据实际情况设定数据库访问的连接数量和等待时间的上限,有必要的时候,采用服务器的集群方式,以此分担数据库。
六、数据库设计
(一)数据资源的类型
系统所需要的主要数据资源包括两个方面,一是调用Google地图获取的地图资源,二是利用SQL Server建立的数据库。而系统所需要建立的数据库里面包括空间的数据和属性的数据。空间数据包括区域的道路线和市场内部结构的线性矢量图、市场的分布位置和市场内部摊位位置的点矢量数据图层。
(二)数据的模型建立
数据的建立过程主要分为概念模型的建立和逻辑模型的建立。对于概念模型的建立采用的是E-R图的形式。
七、界面设计
系统界面的设计充分考虑了本项目要实现的功能需求,主菜单有这一客户端的应用简介、全市各菜市场的详细介绍、以及实时更新的菜价信息,并对其中的特价产品进行推介,核心功能是导航服务,客户只需要在右上角输入范围或者可以用于购买食品的时间,系统通过网络分析以及菜价的计算会自动选取最合理的买菜方案,并在下方的Google地图进行显示,并可以指出行进的路径,供客户参考。
八、结论与讨论
本研究以“每日的菜市场信息发布”为主要内容设计了基于B/S模式的网络GIS服务平台。该系统以SQL server 的数据管理和ArcGIS Server的GIS服务发布为基础,并结合Google 地图使用JavaScript 的开发方式构建起用戶的信息查询平台,得出以下结论: (1)以往關注于居民买菜行为的WebGIS系统设计较少,因而本研究的从选题上具有一定的独特性和新颖性,在越秀区菜市场逐步开始设立管理机构以统计每日各摊位菜价的大背景下,本研究也具有一定的现实性,为新领域WebGIS的研究提供了一个全新视角和方向。(2)系统基于SQL Server数据库和ArcGIS Server地图发布服务的特征保证了系统成果(服务界面)具有一目了然的特征,具有亲和力。(3)系统采用JavaScript的客户端开发方式实现了7大功能,能满足用户对每日菜价查询、时段菜价对比、菜场及摊位导航、菜场及摊位评估等多种需求。
诚然,尽管系统存有着以上的优势,但就设计来说还需要一定的完善。一方面,系统提供的服务比较的简单,在功能上还需要拓展,只有这样才能为用户提供更好的体验;另一方面,系统只是越秀区为试点,服务范围有限,所以系统的服务能力需要在使用的过程中得到提高。综上所述,针对本次WebGIS 系统的设计,无论在技术上还是社会需求上都具有较高的开发现实性,但系统在功能上还需要的长期的实践中完善。
参考文献
[1] 邬伦,刘瑜.地理信息系统:原理,方法和应用[M].科学出版社,2001.
[2] 李剑,曾麦脉.B/S 结构的大型警用地理信息系统设计[J].电脑开发与应用,2013(9):80-82.
[3] 兰小机,余曾林.基于ArcGIS Server的公众地理信息服务系统[J].金属矿山,2008(10):87-91.
[4] 丁毅.基于WEBGIS的车辆定位系统的设计与实现[D].浙江工业大学,2013.
[5] 孟庆武.基于ArcSDE的GIS空间数据管理系统设计与实现[D].吉林大学,2011.
[6] 曾国金,凡宸,邓焕祥,等.基于ArcSDE和ArcServer的生态环境数据库的构建[J].环境科学与技术,2014(1).
[7] 李鹏飞,张方舟,闫贺,等.基于 Arcserver 的物业管理系统设计[J].微计算机信息,2009(34):142-144.
[8] 戴晓爱,叶际阳,简季.基于B/S结构的校园WebGIS 设计与实现——以成都理工大学为例[J].测绘,2010(1):13-17.
[9] 张欧亚,许珂,谢昱贤,等.基于Flex 的广州大学城交通服务WebGIS设计[J].测绘与空间地理信息,2012(10):40-42.
[10] 李凌霄,谭德宝,张煜.浅析水利移动GIS应用软件开发[J].长江科学院院报,2015(6):120-126.
[12] 房体盈.基于JavaScript技术的WebGIS设计与实现[D].大连理工大学,2008.
[13] 金玲玲,朱紫焱,王喜凤,等.基于SQLServer 的空间数据存储器的设计与实现[J].微计算机信息,2007(06S):261-263.
关键词:菜市场信息;B/S模式;GIS服务
随着“智慧城市”的建设,城市中的服务职能部门更多需提供数字化以及智能化的民生服务。近年来,已有越来越多的服务部门步入了“智慧城市”的建设軌道,如BRT公交车站的实时预测公车达到时间的系统,这些系统的建设,对于城市服务的便利化以及居民生活水平的提高都具有重大意义。购物行为是居民生活的重要组成部分之一,而几乎每日都要进行的“买菜”行为是最重要的购物行为之一。买菜行为的主体大多是闲置在家的中老年人,也有相当一部分的“上班族”甚至是未成年人,可以说,买菜行为的主体具有多样性。买菜行为是自由度及复杂度较高的行为,在买菜行为中,最重要的莫过于对“菜价”(Price)和“买菜成本”(Cost)的综合评价,如何在成本较低的情况下买到相对便宜的菜,成为最受关注的问题。然而,买菜行为虽涉及的范围广且直接关乎于城市居民的日常生活,但由于缺乏足够的投入和关注,至今未有能够评价“菜价”的WebGIS系统。笔者认为,菜市信息WebGIS系统的建设,一方面对于居民日常生活具有重大意义,另一方面对于“智慧城市”的建设具有推动作用。
一、需求分析:基于广州东山龟岗菜市场的调研
为了大致了解不同人群对菜价变化的关注程度,于6月21日对越秀区东山龟岗市场的顾客进行抽样访谈,发现将近九成的顾客表示会根据菜价的波动有选择的进行采购;除了菜价的高低对顾客采购选择有影响外,近八成顾客表示菜肉的质量与菜价高低同样重要,可见菜肉的质量同样会制约顾客的采购行为。访谈的过程中,小组成员对早上7点至8点时段出入龟岗市场的人流进行粗略统计,其中50岁以上的人群占百分之七十以上,结合问卷的提供的信息发现,这个年龄段的顾客对菜价的波动最为敏感,对菜肉的质量的要求最高。
针对中老年这一消费群体以及这个群体关注的菜价与菜肉质量这两个焦点,小组围绕这两个焦点进一步分析,发现中老年群体普遍选择离家最近的几家市场进行采购,最终选择的菜市场与菜价和菜肉质量的高低有关。在这里,顾客对菜价与菜肉的质量的评估,是建立在长期的购物经验的积累上,但是这种经验往往带有较强的主观性,归根到底是由于顾客无法及时了解每天每个菜市场各种菜价的变化和对菜市场的不同摊位出售的菜肉质量这两个原因所导致。
针对中老年顾客对菜价变化的敏感和菜肉质量的关注,但无法实时了解菜价动态更新的现状,小组根据这一事实进行系统功能开发,拟建设广州市越秀区“每日菜价”地理信息系统,通过各菜市场管理中心统计并发布的每日菜价数据进行菜价实时查询,建立系统的核心功能“每日实时菜价查询”与“特定时段菜价查询”满足顾客对菜价动态更新的了解;建立系统的另一个核心功能“菜市场、摊位的留言及评价”,方便顾客对市场各个摊位菜肉质量的了解;并建立“电子地图操作与管理”、“菜市场定位与导航及基础信息查询”、“菜市场内部摊位定位”、“导航及基础信息查询”与“确定用户所能接受的买菜时长及范围”5个地图辅助功能,方便用户查找自己附近的菜市场。
二、系统结构设计
系统借助于ArcGIS Server地理信息服务平台以及SQL Server 数据管理工具等,通过JavaScript 的客户端程序的开发,构建了基于Web服务的用于市场每日菜价信息发布的GIS系统,实现了市场菜价的网上及时更新与查询、,购买点定位与指引、菜价的点评等功能。
三、系统流程设计
系统的设计过程分为数据的获取与处理、功能服务的开发以及服务的发布等。
(一)数据的获取与处理
数据是GIS系统的基础,而作为WebGIS系统的菜市场查询系统,数字形式的数据收集、处理与入库成为了系统设计的重要流程,包括空间数据和属性数据的处理。
1. 属性数据的处理
(1)属性数据的收集:主要是通过网上的资料查询和实地的调查获取,主要为菜市场的信息情况;此外,在实地的调查时候通过摄影机获取市场的图片数据。
(2)数据的建模与建库:通过E-R图等工具建立数据的概念模型,并根据转化得到的逻辑模型利用SQL Server建立数据库。同时建立相应的数据字典。
2. 空间数据的处理
(1)数据的获取:通过截取google地图的街道数据得到区域内的街道空间分布的栅格图片,此外,通过网上和相关部门收集各个市场内部的结构栅格图。
(2)栅格数据的配准:打开ArcGIS 10.0,利用Desktop 工具进行街道栅格图的配准。为了让地图分析的结果能够更好地与作为底图的谷歌地图叠合显示,在投影的选取上使用墨卡托投影方式。而在配准的过程中,则通过选取控制点并将其与对应的坐标进行匹配实现地图图层的校正。
(3)建立图层和要素的表结构设计:通过ArcCatalog工具新建数字化图层,并根据分析功能所需要的数据设计数据表的结构。
(4)栅格图的矢量化编辑:加载新建的数字化图层后,通过人工的方式进行栅格图的矢量化。需要矢量化的数据主要包括线状结构的街道以及以中心点作为其分布位置的菜市场,得到的结果为街道的线状图和菜市场分布的点状图,以及组织得到的以支持分析的数据集。 (5)数据的转换:数字化以后,利用ArcSDE中间层将空间数据存放于SQL Server的空间数据库中作为空间分析的数据源。
(二)服务发布
系统借助Web 服务器和ArcGIS Server并且使用ArcCatalog实现地图功能服务的发布,用户可以在客户端通过浏览器输入需要的功能请求,然后通过Web服务器和GIS 服务器提供的服务返回请求结果。
(三)功能服务开发
采用JavaScript在Html网页上进行开发,实现对google街道地图的调用,以及ArcGIS Server分析服务功能的访问和使用。
四、系统功能模块设计
用电子地图技术,在网上构建一个城市每日菜价WebGIS系统,通过访问城市菜市场WebGIS网站,可满足用户对菜市场每日更新的各类菜价的实时查询、菜市场及摊位的路径指引、同一菜市场内部菜价比对、不同市场菜价横向比对、菜场及内部各摊位留言评分等的需要,功能介绍如下。
(1)电子地图操作与管理:提供缩放、居中、移动、图层、打开、保存、专题图、投影、视野、信息等工具。(2)菜市场定位、导航及基础信息查询:根据名称、地址、电话等信息实现区域内菜市场模糊或精确的面板查询,结合用户设备位置,通过网络分析查询用户至各菜市场路线导航功能,并在地图上显示路线信息。(3)菜市场内部摊位定位、导航及基础信息查询:根据名称、地址、电话、出售食物种类等信息实现各菜市场内各摊位模糊或精确的面板查询,结合用户设备位置,通过网络分析查询每日摊位信息,并指引用户前往,在地图上显示路线信息。(4)确定用户所能接受的买菜时长及范围:系统首先询问用户所能接受的买菜时长(如家庭主妇们所能接受1小时,白领们所能接受仅半小时),通过用户买菜时长结合网络分析可划定用户买菜范围,以下菜价查询、菜市场导航等功能都基于此范围而展开。(5)每日实时菜价查询:根据各菜市场管理中心统计并发布的每日菜价数据进行菜价实时查询,一方面可查询某市场各摊位菜价,另一方面可查询搜索范围内各菜场(同一物品)菜价,进行各菜场横向比对。系统根据用户所需要购买的菜的品种及用户距菜市场距离等因子进行优化方案的计算和推荐。(6)特定时段菜价查询:用户可查询某菜市场内某菜价在时段内的变化规律(如从昨日至今日下降或上升的趋势),也可查询区域内各菜市场在该时段内平均菜价的变化规律,根据此趋势用户对菜价的近期变化一目了然。(7)菜市场、摊位的留言及评价:用户可对各菜场及各摊位进行留言和打分,该信息在系统中共享,可作为其他用户选择菜场、摊位的依据。
五、系统开发关键技术设计
(一)前端开发
1. 开发方式
ArcGIS Server功能的开发通常可以通过使用JavaScript API 、Flex API、Sliverlight API、Web ADF等方式实现。而在这些客户端功能的实现方式中,JavaScript 作为比较流行和方便的开发手段,是小组成员了解相对较多的一种网页技术。此外,JavaScript在客户机上执行,大大提高了网页的浏览速度和交互能力;同时,Google Map API的应用程序接口集合调用JavaScript脚本语言能够实现google 地图的网页嵌入,并且使用ArcGIS API for JavaScript可以在一个Web应用程序中访问多个不同的服务器的服务,使得菜市场信息发布系统可以方便地将用户功能请求结果叠加在调用的google 地图上面,所以,在开发中选择使用JavaScript作为系统功能实现的手段。
2. Google地图的调用
Google地图提供的地图类型多样、街道信息详细,并且用户可以免费通过Google公司提供的Maps API进行自主开发,将其地图嵌入自己的网页,实现一些基本的操作;此外通过ArcGIS JavaScript ApI 的地图拓展程序应用接口可以将AreGIS Server的各种服务叠加进Google地图,进而实现复杂的GlS功能。基于以上的google 地图的好处,系统决定调用google 地图作为显示的底图。在Html网页上的头部通过添加代码:
<script type = “text/javascript” src =
“http://ditu.google.cn/maps?file = api&v = 2&key = abcdefg”>
</script>
使用包含google地图API所需要的所有符号和定义的JavaScript文件,其中使用的API版本为Google Map API V3。
而系统是以广州市越秀区作为菜市场信息发布网站功能实现的试点,其地理位置的经纬度为(23.131377,113.261503),所以在创建地图map对象并调用谷歌地图的时候,可以写进如下代码:
Var map = new GMap2(document.getElementById(“map_canvas”));
map.setCenter(new GLatLng(23.131377,113.261503),15);
将地图的中心位置确定在(23.131377,113.2615
03)广州越秀区的位置,同时采用15级别的地图以较清晰地显示街道信息。
此外,为了更好的对地图图层进行操作,使用addControl()的方法添加一些操作小控件;而对于图层类型的选择则通过setMapType()、addMapType()、removeMapType()方法来实现;通过GScaleControl則可实现比例尺控件的调用。 3. 地图叠加层实现
(1)菜市场点位的标注:为了将符合用户请求结果的菜市场在地图上标注出来,可地图上叠加点标记。而实现这一功能则使用GMarker进行标记的添加,核心代码如下:
Var point = new GLatLng(lat,lng);
Var marker = new GMarker(point);
map.addOverlap(marker);
(2)GIS空间分析结果图层的叠加:系统提供了根据用户输入的信息进行菜市场的导航功能,该部分需要利用数据库里面的街道矢量图层作分析。当用户根据自己的需求输入查询信息的时候,系统通过GIS Server 的分析功能实现路径的分析,然后把结果返回到客户端并将图层叠加在地图上。而图层的叠加可以通过ArcGIS Extension for the Google Maps API 来实现。这需要在引用地图拓展API,代码如下:
<script type = “text/javascript” src =
“http://serverapi.arcgisonline.com/jsapi/gmaps/?v =1.6”></script>
在此系统采用的是1.6版本的API。当获得GIS的服务分析后通过地图的URL获取资源并使用addOverlay()的方法实现图层的叠加。
(3)其他信息的显示:为了方便清楚的显示菜市场的信息,可以利用Google Map API中的GInfoWindows对象以浮动窗口的模式显示内容。
4. 地图分析与导航
系统可以根据用户的提供的时间成本进行菜市场的查寻和导航以及根据用户输入的位置进行菜市场摊位的定位和导航,这些功能需要对空间的矢量数据进行分析。在开发的时候,JavaScript API中的 RouteTask和ClosestFacilityTask等类来实现。
5. Ajax技术应用
为了提高用户的服务体验,降低在传统的网页浏览中用户的每一次请求都需要刷新所带来的时间消耗,以及减轻网络传输的负担,系统采用Ajax技术实现“异步”处理的机制。
在菜市场信息系统中,系统根据用户在页面上的请求执行相应的JavaScript代码并创建XMLHttpRequest,向服务器发送请求,服务器对请求作出的处理后将结果返回并执行相应的JavaScript 代码显示结果。通过Ajax实现“异步”处理的核心是JavaScript 中的XMLHttpRequest 对象,以下是创建该对象的方法:
Var Xmlhttp ;
If(window.XMLHttpRequest)
{
Xmlhttp= new XMLHttpRequest();
}
Else{
Xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
}
创建了XMLHttpRequest后,通过其的open和send方法向服务器端发送请求。服务器作出响应后,利用XMLHttpRequest 的onreadystatechange属性指定回调函数对获取的结果数据进行处理。
(二)服务器端的设计
服务器端包括Web 的服务和地图应用的服务。对于Web服务,系统借助Windows 环境下的IIS(Internet Information Services,互联网信息服务)来实现;而在地图应用的服务方面,由于ArcGIS Server是一个基于Web 的综合性GIS,功能强大且对小组成员来说也相对熟悉,因此系统的这部分功能实现由ArcGIS Server 提供的GIS 服务功能承担。
(三)数据组织管理
系统用到的数据包括:1.区域街道、菜市场分布以及内部结构的矢量空间数据。2.描述菜市场信息的属性数据和一些相片数据。3.通过调用的Google Map API得到的街道地图。在这些数据中,矢量数据通过ArcSDE 中间层存储于SQL Server数据库中;同时菜市场的属性信息也用选用SQL Server 作为存储的工具。而对于数据库的其他设计方面,则在实践测试的基础上,根据实际情况设定数据库访问的连接数量和等待时间的上限,有必要的时候,采用服务器的集群方式,以此分担数据库。
六、数据库设计
(一)数据资源的类型
系统所需要的主要数据资源包括两个方面,一是调用Google地图获取的地图资源,二是利用SQL Server建立的数据库。而系统所需要建立的数据库里面包括空间的数据和属性的数据。空间数据包括区域的道路线和市场内部结构的线性矢量图、市场的分布位置和市场内部摊位位置的点矢量数据图层。
(二)数据的模型建立
数据的建立过程主要分为概念模型的建立和逻辑模型的建立。对于概念模型的建立采用的是E-R图的形式。
七、界面设计
系统界面的设计充分考虑了本项目要实现的功能需求,主菜单有这一客户端的应用简介、全市各菜市场的详细介绍、以及实时更新的菜价信息,并对其中的特价产品进行推介,核心功能是导航服务,客户只需要在右上角输入范围或者可以用于购买食品的时间,系统通过网络分析以及菜价的计算会自动选取最合理的买菜方案,并在下方的Google地图进行显示,并可以指出行进的路径,供客户参考。
八、结论与讨论
本研究以“每日的菜市场信息发布”为主要内容设计了基于B/S模式的网络GIS服务平台。该系统以SQL server 的数据管理和ArcGIS Server的GIS服务发布为基础,并结合Google 地图使用JavaScript 的开发方式构建起用戶的信息查询平台,得出以下结论: (1)以往關注于居民买菜行为的WebGIS系统设计较少,因而本研究的从选题上具有一定的独特性和新颖性,在越秀区菜市场逐步开始设立管理机构以统计每日各摊位菜价的大背景下,本研究也具有一定的现实性,为新领域WebGIS的研究提供了一个全新视角和方向。(2)系统基于SQL Server数据库和ArcGIS Server地图发布服务的特征保证了系统成果(服务界面)具有一目了然的特征,具有亲和力。(3)系统采用JavaScript的客户端开发方式实现了7大功能,能满足用户对每日菜价查询、时段菜价对比、菜场及摊位导航、菜场及摊位评估等多种需求。
诚然,尽管系统存有着以上的优势,但就设计来说还需要一定的完善。一方面,系统提供的服务比较的简单,在功能上还需要拓展,只有这样才能为用户提供更好的体验;另一方面,系统只是越秀区为试点,服务范围有限,所以系统的服务能力需要在使用的过程中得到提高。综上所述,针对本次WebGIS 系统的设计,无论在技术上还是社会需求上都具有较高的开发现实性,但系统在功能上还需要的长期的实践中完善。
参考文献
[1] 邬伦,刘瑜.地理信息系统:原理,方法和应用[M].科学出版社,2001.
[2] 李剑,曾麦脉.B/S 结构的大型警用地理信息系统设计[J].电脑开发与应用,2013(9):80-82.
[3] 兰小机,余曾林.基于ArcGIS Server的公众地理信息服务系统[J].金属矿山,2008(10):87-91.
[4] 丁毅.基于WEBGIS的车辆定位系统的设计与实现[D].浙江工业大学,2013.
[5] 孟庆武.基于ArcSDE的GIS空间数据管理系统设计与实现[D].吉林大学,2011.
[6] 曾国金,凡宸,邓焕祥,等.基于ArcSDE和ArcServer的生态环境数据库的构建[J].环境科学与技术,2014(1).
[7] 李鹏飞,张方舟,闫贺,等.基于 Arcserver 的物业管理系统设计[J].微计算机信息,2009(34):142-144.
[8] 戴晓爱,叶际阳,简季.基于B/S结构的校园WebGIS 设计与实现——以成都理工大学为例[J].测绘,2010(1):13-17.
[9] 张欧亚,许珂,谢昱贤,等.基于Flex 的广州大学城交通服务WebGIS设计[J].测绘与空间地理信息,2012(10):40-42.
[10] 李凌霄,谭德宝,张煜.浅析水利移动GIS应用软件开发[J].长江科学院院报,2015(6):120-126.
[12] 房体盈.基于JavaScript技术的WebGIS设计与实现[D].大连理工大学,2008.
[13] 金玲玲,朱紫焱,王喜凤,等.基于SQLServer 的空间数据存储器的设计与实现[J].微计算机信息,2007(06S):261-263.