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 3C //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
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Google Map API V3是一种用于在Web应用程序中嵌入和操作Google地图的编程接口。它提供了一组丰富的功能和工具,可以帮助开发者在自己的网站或应用中实现地图和位置相关功能。 使用Google Map API V3,开发者可以轻松地在网页上显示一个互动的地图,包括地图图块、标记、信息窗口、图形和覆盖物等元素。开发者还可以通过调用API提供的方法,获取地图的坐标和视图信息,以及监听用户交互事件。 除了基本的地图显示功能外,Google Map API V3还提供了许多高级功能。例如,开发者可以使用地图的几何库进行位置计算和空间分析,可以实现地图上的地理编码和逆地理编码等操作。API还支持在地图上绘制路径和多边形,并可以使用地图上的各种工具控制地图的交互和视图。 Google Map API V3还与其他Google服务集成得很好。例如,开发者可以通过API调用Google Places服务,实现根据关键字搜索地点和显示地点详细信息的功能。还可以使用API调用Google Street View服务,在地图上显示街景图像。 总而言之,Google Map API V3为开发者提供了一个强大而灵活的工具,可以方便地在自己的网站或应用中集成和操作Google地图,实现丰富的地图和位置相关功能。无论是创建一个简单的地图显示页面,还是实现复杂的地理应用,Google Map API V3都是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值