首页 > 代码库 > 百度地图获取数据库点的坐标,并定时刷新到页面上
百度地图获取数据库点的坐标,并定时刷新到页面上
后台代码
先创建marker点的实体类(并利用Spring注解功能实现自动自动建表)
1 package com.sdtg.ditu.bean; 2 3 import javax.persistence.Column; 4 import javax.persistence.Entity; 5 import javax.persistence.GeneratedValue; 6 import javax.persistence.Id; 7 import javax.persistence.Table; 8 9 import org.hibernate.annotations.GenericGenerator;10 11 @Entity12 @Table(name = "ditu") // 映射数据库中表的表名13 public class Ditu {14 15 @Id16 @Column(name = "d_id") //映射company表的c_id列17 @GenericGenerator(name = "idGenerator", strategy = "identity")//name属性指定生成器名称,strategy属性指定具体生成器的类名。18 @GeneratedValue(generator = "idGenerator")19 private Integer id;//主键20 21 @Column(name = "d_jd")22 private double jd;//经度23 24 @Column(name = "d_wd")25 private double wd;//纬度26 27 public Ditu() {28 super(); 29 }30 31 public Integer getId() {32 return id;33 }34 35 public void setId(Integer id) {36 this.id = id;37 }38 39 public double getJd() {40 return jd;41 }42 43 public void setJd(double jd) {44 this.jd = jd;45 }46 47 public double getWd() {48 return wd;49 }50 51 public void setWd(double wd) {52 this.wd = wd;53 }54 55 56 57 58 59 }
DAO层代码
package com.sdtg.ditu.dao;import java.util.List;import java.util.Map;import org.springframework.stereotype.Repository;import com.sdtg.ditu.bean.Ditu;@Repositorypublic interface DituDao { /** * 添加 * @param map */ public void add(Ditu ditu); /** * 查询 */ public List<Ditu> find(Map<String, Object> map);}
xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.sdtg.ditu.dao.DituDao"><!-- 字段 --> <sql id="field"> d.d_id as ‘id‘, d.d_jd as ‘jd‘, d.d_wd as ‘wd‘ </sql> <!-- 添加 --> <insert id="add" parameterType="Ditu" keyProperty="id"> insert into ditu( d_jd, d_wd )values( #{jd}, #{wd} ) </insert><!-- 查询 --> <select id="find" parameterType="Map" resultType="Ditu"> select <include refid="field"/> from ditu d where 1 = 1 order by d.d_id </select> </mapper>
service层
package com.sdtg.ditu.service;import java.util.List;import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import com.sdtg.ditu.bean.Ditu;import com.sdtg.ditu.dao.DituDao;import com.sdtg.user.bean.User;@Service@Transactionalpublic class DituService { @Resource private DituDao dao; /** * 添加 * @param map */ public Boolean add(Ditu ditu){ try { dao.add(ditu); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 查询 * @param map * @return */ public List<Ditu> find(Map<String, Object> map){ try { return dao.find(map); } catch (Exception e) { e.printStackTrace(); return null; } } }
前台页面jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>地图</title> <link href="css/style.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="js/jquery.js"></script><style type="text/css"> html{height:100%} body{height:100%;margin:0px;padding:0px} #container{height:90%} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=BSKHkddrAesvEXNXQFHaZEW0Ws5NoiDP"></script><script type="text/javascript">var markers = [];$(document).ready(function() { getdata(); initMap(); setInterval("frash()",3000); });function frash(){ map.clearOverlays();//清空地图上标注点 getdata(); addMapOverlay(); markers.splice(0,markers.length);//清空数组}function getdata(){ $.ajax({ url:"dituList.do", type:"post", success:function(data){ $.each(data,function(i,d){ markers[i]={position:{lat:d.jd,lng:d.wd}}; }); } });} </script> </head> <body><!-- <form action="dituSave.do" method="post"><div class="form-group"><label>经度</label><input name="jd" type="text" id="jd" placeholder="请输入经度" class="form-control" style="width:40%"></div> <div class="form-group"><label>纬度</label><input name="wd" type="text" id="wd" placeholder="请输入纬度" class="form-control" style="width:40%"></div><div><button class="btn btn-sm btn-primary pull-right m-t-n-xs" type="submit" style="margin-right:60%"><strong>定位</strong></button></div></form> --> <!--百度地图容器--> <div style="width:100%;height:100%;border:#ccc solid 1px;font-size:12px" id="map"></div> </body> <script type="text/javascript"> //创建和初始化地图函数: function initMap(){ //alert("111"+markers[1].position.lat); createMap();//创建地图 setMapEvent();//设置地图事件 addMapControl();//向地图添加控件 addMapOverlay();//向地图添加覆盖物 } function createMap(){ map = new BMap.Map("map"); //建树Map实例 map.centerAndZoom(new BMap.Point(118.059014,36.812474),13);// 建树点坐标,初始化地图,设置中心点坐标和地图级别。 } function setMapEvent(){ map.enableScrollWheelZoom();//启用地图滚轮放大缩小 map.enableKeyboard();//启用键盘上下左右键移动地图 map.enableDragging(); //启用地图拖拽事件,默认启用(可不写) map.enableDoubleClickZoom()//启用鼠标双击放大,默认启用(可不写) } function addClickHandler(target,window){ target.addEventListener("click",function(){ target.openInfoWindow(window); }); } //设置点Icon function addMapOverlay(){ //alert(markers.length+"22222"); //alert(markers[1].position.lat+"33333"); /* var markers = [ {position:{lat:36.79,lng:118.06}}, {position:{lat:36.81,lng:118.06}}, {position:{lat:36.81,lng:118.04}}, {position:{lat:36.81,lng:118.05}} ]; alert(markers);*/ for(var index = 0; index < markers.length; index++ ){ var point = new BMap.Point(markers[index].position.lng,markers[index].position.lat); var marker = new BMap.Marker(point,{icon:new BMap.Icon("http://api.map.baidu.com/lbsapi/createmap/images/icon.png",new BMap.Size(20,25) // imageOffset: new BMap.Size(markers[index].imageOffset.width,markers[index].imageOffset.height) )}); // var label = new BMap.Label(markers[index].title,{offset: new BMap.Size(25,5)}); // var opts = { // width: 200, // title: markers[index].title, // enableMessage: false // }; // var infoWindow = new BMap.InfoWindow(markers[index].content,opts); // marker.setLabel(label);//显示地理名称 marker.setLabel();//不显示地理名称 // addClickHandler(marker,infoWindow); map.addOverlay(marker); }; } //向地图添加控件 function addMapControl(){ var scaleControl = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT}); scaleControl.setUnit(BMAP_UNIT_IMPERIAL); map.addControl(scaleControl); var navControl = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE}); map.addControl(navControl); var overviewControl = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:true}); map.addControl(overviewControl); } var map; // initMap(); </script></html>
以上实现了输入点经纬度在页面上显示出来,根据数据库marker点的坐标,定时刷新在页面上。
百度地图获取数据库点的坐标,并定时刷新到页面上
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。