google map 自定义右键菜单

 google map 自定义右键菜单,GControlPosition定义菜单的位置.

  map.enableDoubleClickZoom();//开启双击google map会自动放大.
  map.enableScrollWheelZoom();//开启滚动鼠标自动放大和缩小.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="urn:schemas-microsoft-com:vml">
<head>
    <title>Untitled Page</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;
key=ABQIA" type="text/javascript"></script>
    <script type="text/javascript">
var map = null;
    var geocoder = null;
    var contextmenu;
    function load(loc) {
      if (GBrowserIsCompatible()) {
        var point;
        map=new GMap2(document.getElementById("map"));
    
        map.addControl(new GOverviewMapControl());
        map.enableDoubleClickZoom();
        map.enableScrollWheelZoom();
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        createContextMenu(map);
        var address='<font size="2" face="Arial"><b>INDIA</b><br/><br/>XYZ Inc.<br/>New York City <br/>America<br/>Ph.: 343254543</font>';
        point = new GLatLng(22.592057,88.421815);
              
        var marker = new GMarker(point);
        map.setCenter(point,17);
        map.addOverlay(marker);
        map.setMapType(G_HYBRID_MAP);
        GEvent.addListener(marker,
          "click", function() {marker.openInfoWindowHtml(address);});
        marker.openInfoWindowHtml(address);
          
      }
    }  
 
  function createContextMenu(map)
   {
      contextmenu = document.createElement("div");
      contextmenu.style.visibility="hidden";
      contextmenu.style.background="#ffffff";
      contextmenu.style.border="1px solid #8888FF";

contextmenu.innerHTML ="<a href='javascript:zoomIn()'><div class='context'>  Zoom in  </div></a>"
+ "<a href='javascript:zoomOut()'><div class='context'>  Zoom out  </div></a>"
+ "<a href='javascript:zoomInHere()'><div class='context'>  Zoom in here  </div></a>"
+ "<a href='javascript:zoomOutHere()'><div class='context'>  Zoom out here  </div></a>"
+ "<a href='javascript:centreMapHere()'><div class='context'>  Centre map here  </div></a>";

      map.getContainer().appendChild(contextmenu);
      GEvent.addListener(map,"singlerightclick",function(pixel,tile)
      {
          clickedPixel = pixel;
          var x=pixel.x;
          var y=pixel.y;
          if (x > map.getSize().width - 120)
          {
            x = map.getSize().width - 120
          }
          if (y > map.getSize().height - 100)
          {
            y = map.getSize().height - 100
          }
          var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y)); 
          pos.apply(contextmenu);
          contextmenu.style.visibility = "visible";
     });
     GEvent.addListener(map, "click", function()
     {
          contextmenu.style.visibility="hidden";
     });
 }
 function zoomIn()
 {
            map.zoomIn();
            contextmenu.style.visibility="hidden";
 }     
 function zoomOut()
 {
           map.zoomOut();
           contextmenu.style.visibility="hidden";
 }     
 function zoomInHere()
 {
           var point = map.fromContainerPixelToLatLng(clickedPixel)
           map.zoomIn(point,true);
           contextmenu.style.visibility="hidden";
 }     
 function zoomOutHere()
 {
          var point = map.fromContainerPixelToLatLng(clickedPixel)
          map.setCenter(point,map.getZoom()-1);
          contextmenu.style.visibility="hidden";
 }     
 function centreMapHere()
 {
         var point = map.fromContainerPixelToLatLng(clickedPixel)
         map.setCenter(point);
         contextmenu.style.visibility="hidden";
 }

    </script>
</head>
 <body οnlοad="load('map')" οnunlοad="GUnload()" style="
                background-color:Transparent">
    <div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田猿笔记

写文章不容易,希望大家小小打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值