百度地图经纬度转换+反地址解析+显示可视区域内标注点+地图自动刷新+标注的聚合
|
一:代码简介 本次主要将百度地图的经纬度转换,反地址解析,显示可视区域内的标注点,Markers聚合等整合到了同一个jsp页面上;旨在实现在经纬度未转换的情况下,页面自动实现百度经纬度转换,添加标注点。当用户点击标注点时,开始进行反地址解析,并检索该点周围区域内的最多3个关键点,一并予以显示。本次经纬度转换采取了百度的单个经纬度转换的方法,因为需要给标注点添加对应的信息,而百度提供的批量转换经纬度的方法会导致经纬度顺序错乱,无法使标注点与信息对应。同时,代码提供了地图页面自动刷新的方法,关于自动刷新,本人采用了setTimeout延时器,关于清除setTimeout延时器这块本人不是很精通,无法将延时器全部清除,所以此次采用的方法比较笨拙,还请大家见谅,望高手多多指点下.另外还有Markers标注点聚合,这个就比较简单了。此外,这次jsp页面共包含了两个地图容器,可以通过按钮切换。 附注:本人在地图上还添加了判断点击是地图还是覆盖物事件,如果点击到覆盖物,将无法拖动地图,需再次点击地图才可拖动地图移动。
二:功能预览 1.地图容器 (1).Markers聚合 (2).定位页面 2.反地址解析 3.显示可视区域内的标注点(通过监视地图移动、缩放开始,移动结束和地图缩放开始、结束来触发,2秒后执行方法)
4.地图自动刷新 5.Markers聚合 三、示例代码: ========================全部源码=========================================== <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>多车实时定位</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></script>
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<style>
.style1{
width: 400px;
height: 120px;
margin: 0px auto;
margin-bottom:20px;
border:1px solid #96C2F1;
background-color: #EFF7FF
}
</style>
<script type="text/javascript">
var t="";
var tt2='';
function end(){
tt2=setTimeout(addMymarkers,2000);
}
function cle(){
clearTimeout(tt2);
}
var t1='';var t2='';var t3='';var t4='';var t5='';var t6='';var t7='';var t8='';var t9='';var t10='';
var t11='';var t12='';var t13='';var t14='';var t15='';var t16='';var t17='';var t18='';var t19='';var t20='';
var t21='';
var JHt='';
function nextJH(){
JHt=setTimeout(function(){
refreshJH();
},20000);
}
var secs =120; //倒计时的秒数
function nextTrans2(){
var text1 = document.getElementById("text1").value;
var text2= document.getElementById("text2").value;
if(text1!=""||text2!=""){
X2.Eval("var pdnextTrans2 = 0");
document.getElementById("ShowDiv2").style.display="block";
//for(var i=secs;i>=0;i--){
// t=setTimeout('doUpdate(' + i + ')',(secs-i) * 1000);
// |
