将数据存放到数据库中,动态的调取比较灵活,数据变动后不需要改变图层的属性表。

此处采用的方法是通过jquery查询数据库,并将数据库的结果生产json串返回给js,在js中动态解析json串增加点至地图上

1、jquery调取查询并处理json

 1 var data = [];
 2 function getData(vipstatus){
 3     data=[];//清空数据列表
 4     $.get('getVIPStatus.jsp',{vipstatus:vipstatus},function(result){
 5         //alert(result);
 6         var obj = JSON.parse(result);//将传递过来的json串转换成json对象
 7           $.each(obj, function(index){
 8               data.push(this);
 9           });
10           displayPoints(data);//加载点到地图上,参见另外一篇文章
11     });
12 }

说明6-9行需要对返回的json传进行一个处理,因为传过来的数据格式为

 1 {
 2     "id25" : {
 3         "XMJSNR" : "30万千瓦",
 4         "ZRDW" : "xx市政府",
 5         "XMMC" : "海上风电场H2",
 6         "PROJECT_ID" : "ddafb1a4-668a-4b0c-85f0-081d90778e82",
 7         "LONGITUDE" : "125.22222",
 8         "LATITUDE" : "33.305264"
 9     },
10     "id24" : {
11         "XMJSNR" : "年产海洋生物营养保健品系列2万吨、抗癌系列新药1万吨",
12         "ZRDW" : "xx市政府",
13         "XMMC" : "海洋生物营养保健品、抗癌新药项目",
14         "PROJECT_ID" : "d26da381-e7ca-4ab7-8c9c-d09c2b242c27",
15         "LONGITUDE" : "124.55555",
16         "LATITUDE" : "33.30223"
17     }
18 }

而实际需要的是个json数组,如下:(此处应该可以改进,需要继续优化)

1 [{"name":"name1","x":"x1","y":"y1","img":"img1","content":"content1"}...]

2、getVIPStatus.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2 <%@ page import="com.marost.tool.*,java.sql.*" %>
 3 <%@ page import="java.util.Map,java.util.HashMap" %>
 4 <%@ page import="org.json.JSONException,org.json.JSONObject" %>
 5 <%
 6 JDBConnection connection = new JDBConnection();
 7 String vipstatus = Chinese.toChinese(request.getParameter("vipstatus"));
 8 //System.out.println(vipname);
 9 JSONObject jsonObj = new JSONObject();
10
11 String sql = "SELECT " +
12         "T_PROJECT_INFO.PROJECT_ID," +
13         "T_PROJECT_INFO.XMMC," +
14         "T_PROJECT_LOCATION.LONGITUDE,"+
15         "T_PROJECT_LOCATION.LATITUDE," +
16         "T_PROJECT_INFO.XMJSNR," +
17         "T_PROJECT_INFO.ZRDW " +
18         "FROM T_PROJECT_INFO ,T_PROJECT_LOCATION " +
19         "WHERE T_PROJECT_INFO.XMZT = (select code from t_code where code_name='"+vipstatus+"' and SECTION_NAME='项目状态') " +
20         "AND T_PROJECT_INFO.PROJECT_ID = T_PROJECT_LOCATION.PROJECT_ID";
21 System.out.println(sql);
22 try {
23     ResultSet rs = connection.executeQuery(sql);
24     while (rs.next()) {
25           Map <String, String> ingredients = new HashMap <String, String>();
26         ingredients.put("PROJECT_ID", rs.getString(1));
27         ingredients.put("name", rs.getString(2));
28         ingredients.put("x", rs.getString(3));
29         ingredients.put("y", rs.getString(4));
30         ingredients.put("XMJSNR", rs.getString(5));
31         ingredients.put("ZRDW", rs.getString(6));
32         ingredients.put("img","images/map_pin_fill_20.png");
33         try {
34             jsonObj.put("id"+rs.getRow(), ingredients);
35         } catch (JSONException e) {
36             // TODO Auto-generated catch block
37             e.printStackTrace();
38         }
39         //System.out.print(deptno+"\t"+dname+"\t"+loc);
40         //System.out.println(rs.getRow());
41     }
42     //System.out.println(jsonObj);
43 } catch (SQLException e) {
44     e.printStackTrace();
45 }
46 connection.closeConnection();
47 response.getWriter().print(jsonObj);
48 %>

说明:生成json时用到org.json.jar

转载于:https://www.cnblogs.com/marost/p/3670943.html

ArcGIS Javascript查询数据库并添加到地图上相关推荐

  1. ArcGIS Javascript API 加载高德在线地图扩展

    利用ArcGIS JavaScript API加载高德在线地图的扩展 /*** Created by WanderGIS on 2015/7/15.*/ define(["dojo/_bas ...

  2. 用Matlab将坐标添加到地图上

    用Matlab将坐标添加到地图上 今年本科组全国大学生数学建模国赛我没有参加,闲着无聊帮助研究生学姐做竞赛,她让我用matlab将坐标添加到地图上.我的思路是:先画个地图(地图可以是matlab自带的 ...

  3. ARCGIS前端--读取excel数据并在地图上显示

    已知一批有经纬度点信息的数据,临时想要在前端地图上展示具体的位置和效果,有三种方法可以实现: 方法一: 传统方法是把数据发布成要素服务,然后在前端调用URL展示,但是当数据变化时,需要重新发布要素服务 ...

  4. Arcgis Javascript那些事儿(三)---arcgis sever服务器注册关于数据拷贝问题

    1.如何将数据库注册到ARCSERVER服务器 前置知识:在10.1中,服务器端为了确保发布的服务能访问到所需的数据,采取了如下两种措施:1)如果数据注册到了服务器,则服务器会从注册的数据中找到位置列 ...

  5. 解析 数据库 苹果自带地图

    首先把MJExtension 第三方文件拖入到工程里面 Model类和View类里面照常写东西 View里面用xib照常拖 然后在VC.m里面引入#import "AFNetworking/ ...

  6. Google Map API v2 (三)----- 地图上添加标记(Marker),标记info窗口,即指定经纬度获取地址字符串...

    接上篇 http://www.cnblogs.com/inkheart0124/p/3536322.html 1,在地图上打个标记 1 private MarkerOptions mMarkOptio ...

  7. 使用Python调用百度地图的API在地图上添加标记

    写在前面 近期博主工作太忙,快一个月没更新博客.今天跑了大半天的腿,被一堆破事儿弄的无比憋屈,写篇博客调节一下心情. 博主的目的是在地图上做一些标记,然后保存为html网页文件,这样方便我的软件调用, ...

  8. arcgis打开mdb数据库_ARCGIS打开mdb数据库,全是表格,怎么转成shp格式?

    1.首先需bai要下载[database engineer 2010][GIS数据转du换器zhi(矢量-矢量)V2.1.rar].2.然后安装daodatabase engineer 2010应用程 ...

  9. javascript:在网页地图上画圆形范围圈、位置图标标点

    我使用的是高德地图,因为是在网页上使用,所以我选择的是web端. 打开后,这是web端地图中的教程和实例 涉及到的实例很多,这里我就为大家演示一下圆形范围覆盖和地图标点 <!doctype ht ...

最新文章

  1. 免费实现服务器登录手机短信通知
  2. 成长型公司的存储架构
  3. 前后端分离 跨域问题解决
  4. jquery实现导航栏鼠标点击后实行背景高亮,点击离开恢复(超级简单!!!!)...
  5. Vue生产环境调试的方法
  6. 使用webpack打包后的vue项目如何运行(express)
  7. linux定时任务不能执行.sh脚本,求助sh脚本手动可以执行crontab不能执行的问题
  8. [导入]PropertyGrid代码示例(Ext1.x)
  9. Android每周一轮子:Nvwa(热修复)
  10. LFYZOJ 104 Counting Swaps
  11. 窄带物联网技术有望终结碎片化现状
  12. Tomcat的下载及安装
  13. 三菱PLC与触摸屏的连接不通解决方法
  14. 数据库sql语句练习题
  15. Laravel5.6 模块化公众号与小程序系统项目实战
  16. 做正确的事和正确的做事的区别
  17. 重生之我又是蝌蚪(召唤神龙)源码和无敌版
  18. [ Azure - Cloud Shell ] 微软 Azure Cloud Shell 介绍
  19. IDEA如何自动/手动导入包
  20. 《C程序设计》谭浩强

热门文章

  1. linux(2)- 共享内存的实现
  2. “从A到I”智慧数据中心上海论坛
  3. python property理解
  4. linux 操作系统chgrp 的命令用法
  5. nagios系列(六)之nagios实现对服务器cpu温度的监控
  6. 【转】强大的vim配置文件,让编程更随意
  7. 计算机网络的硬件连接图,路由器设置图和网络电缆连接图_计算机硬件和网络_IT /计算机_数据...
  8. 对抽象工厂+反射+配置文件的实例理解
  9. 铁轨问题 判断是否为出栈顺序
  10. linux下/proc/cpuinfo文件