《深圳罗湖慢性病防治系统》—— 项目研发阶段性总结

作者:潘玉莹
本次任务完成时间:2018年1月10日~2018年1月15日
完成模块功能:显示某个地区全部医院分布图
开发工具: SuperMap iDesktop 9D、SuperMap_iserver 、Visual Studio 2015

一、功能实现

工具箱、图层管理器、搜索查询

1:工具箱功能

1.1 测量距离

在地图任意区域内都可进行测量,并得知测量结果。
在这里插入图片描述
1.2 测量面积
画面,可以测算一个面有多大。
在这里插入图片描述
1.3 方框区域查询
点击“框选” 框选一个方型区域,自动查询范围内医院,社康等,点击查询的信息点 即可查看该地址的详细信息。
在这里插入图片描述1.4 圆形区域查询
点击“圆选” 框选一个圆区域,自动查询范围内医院,社康等,点击查询的信息点 即可查看该地址的详细信息。
在这里插入图片描述
1.5 自定义查询
以画面的形式,画出对应的区域,自动查询出此范围内的医院,社康等,点击查询的信息点 即可查看该地址的详细信息
在这里插入图片描述

2:图层管理器

2.1 医院分布图层管理
根据点击的医院显示相应的信息,点击地图中的医院的图标可显示详细信息
在这里插入图片描述
点击周边查询按钮可进行查询附近相应的信息,查询的结果显示在右侧导航栏中,点击名称可进行定位。
在这里插入图片描述

2.2 药店分布图层管理器

点击周边查询按钮可查询出附近相应的地点,查询结果显示在右边导航栏中,点击名称可进行定位,点击相应的药店图标可查看药店的详细信息。
在这里插入图片描述
2.3 社康分布图层管理器
不同颜色的图标代表社康不同的状态,点击周边查询按钮可查询出附近相应的地点,查询结果显示在右边导航栏中,点击名称可进行定位,点击相应的社康图标可查看社康的详细信息。
在这里插入图片描述
2.4 病例分布散点图层管理器
不同的病例类型需以不同风格的点进行呈现,点击周边查询按钮可查询出附近相应的地点,查询结果显示在右边导航栏中,击名称可进行定位,点击相应的病例可查看详细信息。
在这里插入图片描述
2.5病例分布热力图层管理器
颜色的深浅代表不同的数据类型
在这里插入图片描述
2.6病原基因分布图层管理器
不同的病原基因需以不同风格的点进行呈现,点击周边查询按钮可查询出附近相应的地点,查询结果显示在右侧导航栏中,点击名称可进行定位。
在这里插入图片描述

3:搜索地址查询

    在输入框输入你要查询的地址的关键字,查询结果将会一一列举出来,找到你所要查询的地址进行定位,结果将会在地图定位出来。

在这里插入图片描述

4:周边查询

选择一个中心点,设置查询范围,选择查询目标,查询结果将会在右边导航栏显示出来,点击名称可进行定位。
在这里插入图片描述
经典代码段:

这段代码主要是查询出右边的导航栏的信息,查询出数据主要是用追加的方法插进去table表格里的

    //周边分析医院查询(以医院为例)
    function processHospital(queryEventArgs) {
        var i, j, feature, features = [], featuress;
        result = queryEventArgs.result;
        if (result && result.recordsets) {
            for (i = 0; i < result.recordsets.length; i++) {
                if (result.recordsets[i].features) {
                    for (j = 0; j < result.recordsets[i].features.length; j++) {
                        var x = result.recordsets[i].features[j].geometry.x;
                        var y = result.recordsets[i].features[j].geometry.y;
                        var geometry = new SuperMap.Geometry.Point(x, y);
                        feature = new SuperMap.Feature.Vector(geometry);
                        featuress = result.recordsets[i].features[j];
                        if (featuress.data.TYPE == 7200){
                            feature.style = HospitalStyle;//医院
                            feature.int = 1;
                            feature.NAME = featuress.attributes.NAME;
                            feature.ADDRESS = featuress.attributes.ADDRESS;
                            feature.TELEPHONE = featuress.attributes.TELEPHONE;
                            feature.SmID = featuress.attributes.SmID;
                            X = featuress.attributes.SmX;
                            Y = featuress.attributes.SmY;
                            //$('#tabAddress2').append("<tr><td>" + feature.NAME + "</td><td></td></tr>");
                            var tr = document.createElement("tr");
                            tr.innerHTML = "<td>" + "<a href='javascript:' X='" + X + "'  Y='" + Y + "' NAME='" + feature.NAME + "' ADDRESS='" + feature.ADDRESS + "' SmID='" + feature.SmID + "' TELEPHONE='" + feature.TELEPHONE + "' onclick='addressLocation2(this)' style='color:#000;'>" + feature.NAME + "</a>" + "</td>";
                            tabAddress2.appendChild(tr); //把查出来的数据添加到右边查询结果框中
                            features.push(feature);
                        } 
                    }
                }
            }
        }
        vectorLayer1.addFeatures(features);
    }

发开总结:
刚开始接触这份项目计划书时,一脸茫然。因为其中的数据不知是来自地图的数据还是项目里的数据库,纠结了许多天。但只要多与同学交流,相互学习,多看看同学的项目加以借鉴,你会发现自己很多不足之处。结合老师给的API文档,其实这个项目很多东西都是可以从文档中找到的
我们只需复制过来便可应用。但文档中的一些代码还是没有理解,但是学习了这门课理解了GIS主要是用于哪一方面,生活中其实很多东西都跟GIS有联系。学习这一课程也让我理解了更多关于地理信息的方面。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值