Google Map ApI 的简单运用(二)

下面的是Google Map地图异步加载 (通过js)和 通过查询获取后台经纬度数据 并且点与点之间用折线链接显示。

参考的是Google Map ApI 官方网址

 

 

这是我的mapSearch.js文件,这中间运用了DWRJQuery。

 

 

$().ready(function(){

 

 

loadScript();

 

 

$('#empNo').val('');

 

 

});

 

 

 

 

 

 

var map;

 

 

var markerOptions;

 

 

 

 

 

function load() {

 

 

map = new GMap2(document.getElementById("map"));

 

 

if (GBrowserIsCompatible()) {

 

 

// map.addControl(new GSmallMapControl());//却掉了恢复和滑块

 

 

map.addControl(new GLargeMapControl());//大的缩略图控件

 

 

map.addControl(new GMapTypeControl());//地图模式

 

 

map.addControl(new GOverviewMapControl());//右下角缩略图

 

 

//map.addControl(new GScaleControl());//地图比例尺

 

 

map.removeMapType(G_HYBRID_MAP);//去除混合地图模式

 

 

map.enableScrollWheelZoom(); //开启滚轮伸缩效果--鼠标滚轮向前滚放大地图,反之缩小

 

 

//map.setCenter(new GLatLng(39.9693, 116.4170), 13);

 

 

map.setCenter(new GLatLng(31.14,121.29), 13);

 

 

}

 

 

else

 

 

{

 

 

alert('你使用的浏览器不支持 Google Map!');

 

 

}

 

 

}

 

 

//判断输入的工号是否存在

 

 

function checkempNo (){

 

 

var isExist=dbwtool.callDWRSync('MapSearchDWR.checkempNo',[$('#empNo').val()]);

 

 

if(isExist==false){

 

 

alert("该业务员工号不存在存在,请重新输入!");

 

 

$('#empNo').val('');

 

 

}

 

 

}

 

 

 

 

 

//创建有弹出信息框窗口的 Marker

 

 

function createMarker(point, content) {

 

 

var blueIcon = new GIcon(G_DEFAULT_ICON);

 

 

//blueIcon.image = "http://localhost:8080/hs/image/admin/btn_save.gif";//更换Marker图标

 

 

markerOptions = { icon:blueIcon };

 

 

var marker = new GMarker(point,markerOptions);

 

 

var html = content ;

 

 

GEvent.addListener(marker, "click", function() {

 

 

marker.openInfoWindowHtml(html);

 

 

});

 

 

 

 

 

return marker;

 

 

}

 

 

//查询操作

 

 

function doSearch(){

 

 

var empNo=$('#empNo').val();

 

 

if(empNo!=""){

 

 

var o = dbwtool.callDWRBusiness('MapSearchDWR.getLatitudelongitudes',[empNo]);

 

 

load();//作用是在查询第二次,把前一次的加载的标记清掉 归为第一次加载的地图,这样地图不会 重叠

 

 

if(o){

 

 

var points=[];//定义一个 数组大小不确定

 

 

for (var i=0;i<o.length;i++){

 

 

var latitude=parseFloat(o[i].latitude);

 

 

var longitude=parseFloat(o[i].longitude);

 

 

var point=new GLatLng(latitude,longitude);

 

 

points[i]=point;

 

 

var content="客户姓名:"+o[i].customerName+"<br>客户地址:"+o[i].address+"</br>"+"<br>客户电话:"+o[i].phone+"</br>"+"</br>"+"<br>购买数量电话:"+o[i].buyAmount+"</br>";

 

 

var marker = createMarker(point, content);

 

 

map.addOverlay(marker);

 

 

}

 

 

 

 

//var polyline = new GPolyline([points[0],points[1],points[2]], "#ff0000", 8);

 

 

var polyline = new GPolyline(points, "#ff0000", 8);

 

 

map.panTo(points[0]);//这一句很重要,作用是移动地图中心位置

 

 

map.addOverlay(polyline);

 

 

}

 

 

else{

 

 

alert("没有数据!");

 

 

$('#empNo').val('');

 

 

return false;

 

 

}

 

 

}

 

 

else{

 

 

alert("请输入业务员工号!");

 

 

return false;

 

 

}

 

 

}

 

 

//下面该方法是异步夹杂Google Map 注意 两个参数 asynscallback

 

 

function loadScript() {

 

 

var script = document.createElement("script");

 

 

script.type = "text/javascript";

 

 

script.src = "http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAiWserKTZU9nXfUSx4Ei4RRSY6Rp_dtTyQN4GkMrKIoAukNIPFxRDWpNdSMTrO1knJiSNHRXJdBcZSA&async=2&callback=load";

 

 

document.body.appendChild(script);

 

 

}

 

 

 

 

 

我的mapSearch.jsp文件:


 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

 

 

<%@include file="../common/comtop.jsp"%>

 

 

<%@taglib prefix="s" uri="/struts-tags" %>

 

 

<!DOCTYPE html PUBLIC "-//W<chmetcnv unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">3C</chmetcnv>//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 

 

<html>

 

 

<head>

 

 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

 

 

<title>地图——地图查询</title>

 

 

<link rel="stylesheet" type="text/css" href="<%=ctxPath%>/themes/default/dtree.css" />

 

 

<link rel="stylesheet" type="text/css" href="<%=ctxPath%>/themes/default/tooltip.css" />

 

 

<script type="text/javascript" src="<%=ctxPath%>/js/common/dbwtool.js"></script>

 

 

<script type="text/javascript" src="<%=ctxPath%>/js/common/dtree_c.js"></script>

 

 

<script type="text/javascript" src="<%=ctxPath%>/js/map/mapSearch.js"></script>

 

 

<script type='text/javascript' src="<%=ctxPath%>/dwr/interface/MapSearchDWR.js"></script>

 

 

<script type='text/javascript' src="<%=ctxPath%>/dwr/engine.js"></script>

 

 

<script type="text/javascript">

 

 

</script>

 

 

</head>

 

 

<body onload="load()" onunload="GUnload()">

 

 

<div class="titleBar">

 

 

<span style="float: left;">地图-地图查询</span><br/>

 

 

<span style="float: right"></span>

 

 

</div>

 

 

<s:form id="mainForm" name="mainForm" action="mapSearch" namespace="/map" method="post">

 

 

<div class="panel" id="search">

 

 

<table class="panel">

 

 

<thead>

 

 

<tr>

 

 

<td>业务员工号 <input type="text" id="empNo" onblur="checkempNo()" ></td>

 

 

<td><a href="#" onClick="doSearch();return false;"><img src='<%=ctxPath%>/image/admin/btn_search.gif'/>查询</a></td>

 

 

</tr>

 

 

</thead>

 

 

</table>

 

 

</div>

 

 

<div id="map" align="center" style="width: 1300px; height: 350px">

 

 

</div>

 

 

</s:form>

 

 

</body>

 

 

</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值