• GoogleMap : [Google Map]GMark事件运用(GEvent)


    透过GEvent,我们可以让地图上的物件与网页元作互动,达到对使用者更友善的介面。

    如本范例,当滑鼠移过(moveover)右侧的站名方块时地图中对应的marker会变红色,点(click)方块时地图会显示讯息视窗。
    若滑鼠移过(moveover)地图中的marker相对应的站名方块也会变黄底突显。
    当地图内marker太多时这个技巧特别有用。


    GEvent
    GEvent
    .addListener
    .trigger 触发地图内的事件
    程式码
    执行范例

    /Files/Fooo/GoogleMapGEvent.rar

    或如下源码:

     

     

    代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    >
    <html xmlns="http://www.w3.org/1999/xhtml">
      
    <head>
        
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        
    <title>Google Maps (04) | Horn Network</title>
        
    <meta http-equiv=Pragma content=no-cache>
        
    <meta http-equiv=Cache-Control content=no-cache>
        
    <meta http-equiv=Cache-Control content=private>
        
    <meta http-equiv=Expires content=0>  
        
    <style>.site {border:solid 1px #000000;padding-left:1em; display:block; width:60px;cursor:pointer;margin:5px;} </style>
        
    <script src="http://maps.google.com/jsapi?key=ABQIAAAAmIm9ZV1hQJ-pZ9ewUIrkMhS7AbjRHyuW1uOZxkKGPhcO4TQrsRSOuGLqTHRS-Xr8ZdxbUOndbM1LSg"
          type
    ="text/javascript"></script>
        
    <script type="text/javascript">
        
    //<![CDATA[
    google.load("maps""2.x");
    google.setOnLoadCallback(initialize);

    var map = null;
    var arySite = new Array();

    function initialize() {
        
    // 檢查瀏覽器是否可使用 Google Map API
        if ( GBrowserIsCompatible() ) {
            map 
    = new google.maps.Map2(document.getElementById('map'));
            
    // 設定地圖中心點
            map.setCenter(new GLatLng(25.036772,121.520269), 12);
            
    addSite(map,
    4,'新店',24.978889,121.529167,'台北縣新店市三民路36號',40,23,'懸浮微粒',0);
    addSite(map,
    5,'土城',24.981667,121.451667,'台北縣土城市學府路一段241號',40,26,'懸浮微粒',0);
    addSite(map,
    6,'板橋',25.012778,121.459167,'台北縣板橋市文化路一段25號',40,27,'懸浮微粒',0);
    addSite(map,
    7,'新莊',25.034056,121.432583,'台北縣新莊市中正路510號',40,27,'臭氧',0);
    addSite(map,
    8,'菜寮',25.064167,121.480556,'台北縣三重市中正北路135號',40,26,'懸浮微粒',0);
    addSite(map,
    9,'林口',25.078333,121.368611,'台北縣林口鄉民治路25號',40,26,'臭氧',0);
    addSite(map,
    10,'淡水',25.164694,121.449139,'台北縣淡水鎮中正東路42巷6號',40,21,'懸浮微粒',0);
    addSite(map,
    11,'士林',25.105389,121.515139,'台北市北投區文林北路155號',40,37,'懸浮微粒',0);
    addSite(map,
    12,'中山',25.062361,121.526194,'台北市中山區林森北路511號',40,28,'懸浮微粒',0);
    addSite(map,
    13,'萬華',25.030000,121.490556,'台北市萬華區莒光路315號',40,22,'懸浮微粒',0);
    addSite(map,
    14,'古亭',25.020833,121.528611,'台北市中正區羅斯福路三段153號',40,30,'懸浮微粒',0);
    addSite(map,
    15,'松山',25.050833,121.578889,'台北市松山區八德路四段746號',40,23,'懸浮微粒',0);
            
        } 
    // if
        else {
            alert(
    '您的瀏覽器不支援Google Map');
        } 
    // else
    }

    function addSite(map, siteCode, siteDesc, lat, lng, address, type) {
    //document.getElementById('out').value += "<span class='site'  id='site"+siteCode+"' onclick='GEvent.trigger(arySite["+siteCode+"],\"click\")' onmouseover='GEvent.trigger(arySite["+siteCode+"],\"mouseover\")' onmouseout='GEvent.trigger(arySite["+siteCode+"],\"mouseout\")'>"+siteDesc+"</span>\r\n";    return;

        
    var icon=new GIcon();
        icon.image
    ="http://klcin.tw/ap/gmap/images/psi1.gif";
        icon.iconSize 
    = new GSize(16,16);
        icon.iconAnchor 
    = new GPoint(8,8);
        icon.infoWindowAnchor 
    = new GPoint(88);

        
    var mark = new GMarker(
            
    new GLatLng(lat,lng), 
            {icon:icon, title:siteDesc}
            );
            
        arySite[siteCode] 
    = mark;
        map.addOverlay(mark);
        GEvent.addListener(mark, 
    "click"function() {mark.openInfoWindowHtml('測站:'+siteDesc+'<br />地址:'+address);}); 
        GEvent.addListener(mark, 
    "mouseover"function() {
            mark.setImage(
    'http://klcin.tw/ap/gmap/images/psi1r.gif');
            document.getElementById(
    'site'+siteCode).style.background='yellow';
            }); 
        GEvent.addListener(mark, 
    "mouseout"function() {
            mark.setImage(
    'http://klcin.tw/ap/gmap/images/psi1.gif');
            document.getElementById(
    'site'+siteCode).style.background='white';
            }); 
    }
        
    //]]>
        </script>
      
    </head>
      
    <body onunload="GUnload()">
      
    <b>04.Marker事件運用</b>
        
    <div id="map" style="500px; height:500px;float:left;"></div>
        
    <div id="sitelist" style="float:left;" >
    <span class='site' id='site4' onclick='GEvent.trigger(arySite[4],"click")' onmouseover='GEvent.trigger(arySite[4],"mouseover")' onmouseout='GEvent.trigger(arySite[4],"mouseout")'>新店</span>
    <span class='site' id='site5' onclick='GEvent.trigger(arySite[5],"click")' onmouseover='GEvent.trigger(arySite[5],"mouseover")' onmouseout='GEvent.trigger(arySite[5],"mouseout")'>土城</span>
    <span class='site' id='site6' onclick='GEvent.trigger(arySite[6],"click")' onmouseover='GEvent.trigger(arySite[6],"mouseover")' onmouseout='GEvent.trigger(arySite[6],"mouseout")'>板橋</span>
    <span class='site' id='site7' onclick='GEvent.trigger(arySite[7],"click")' onmouseover='GEvent.trigger(arySite[7],"mouseover")' onmouseout='GEvent.trigger(arySite[7],"mouseout")'>新莊</span>
    <span class='site' id='site8' onclick='GEvent.trigger(arySite[8],"click")' onmouseover='GEvent.trigger(arySite[8],"mouseover")' onmouseout='GEvent.trigger(arySite[8],"mouseout")'>菜寮</span>
    <span class='site' id='site9' onclick='GEvent.trigger(arySite[9],"click")' onmouseover='GEvent.trigger(arySite[9],"mouseover")' onmouseout='GEvent.trigger(arySite[9],"mouseout")'>林口</span>
    <span class='site' id='site10' onclick='GEvent.trigger(arySite[10],"click")' onmouseover='GEvent.trigger(arySite[10],"mouseover")' onmouseout='GEvent.trigger(arySite[10],"mouseout")'>淡水</span>
    <span class='site' id='site11' onclick='GEvent.trigger(arySite[11],"click")' onmouseover='GEvent.trigger(arySite[11],"mouseover")' onmouseout='GEvent.trigger(arySite[11],"mouseout")'>士林</span>
    <span class='site' id='site12' onclick='GEvent.trigger(arySite[12],"click")' onmouseover='GEvent.trigger(arySite[12],"mouseover")' onmouseout='GEvent.trigger(arySite[12],"mouseout")'>中山</span>
    <span class='site' id='site13' onclick='GEvent.trigger(arySite[13],"click")' onmouseover='GEvent.trigger(arySite[13],"mouseover")' onmouseout='GEvent.trigger(arySite[13],"mouseout")'>萬華</span>
    <span class='site' id='site14' onclick='GEvent.trigger(arySite[14],"click")' onmouseover='GEvent.trigger(arySite[14],"mouseover")' onmouseout='GEvent.trigger(arySite[14],"mouseout")'>古亭</span>
    <span class='site' id='site15' onclick='GEvent.trigger(arySite[15],"click")' onmouseover='GEvent.trigger(arySite[15],"mouseover")' onmouseout='GEvent.trigger(arySite[15],"mouseout")'>松山</span>
        
    </div>
    <br clear="all" />    
    <textarea style="100%;height;100px;display:none;" id="out"></textarea>
    <ol>
    <li><href="http://code.google.com/intl/zh-CN/apis/maps/documentation/reference.html#GEvent">GEvent.trigger</a> 從外界觸發gmap內部事件。</li>
    <li>滑鼠移至GMarker可使右側對應測站變黃底。</li>
    <li>點右側測站可使GMarker顯示資訊視窗。 </li>
    </ol>    
      
    </body>
    </html>
  • 相关阅读:
    c编写程序完成m名旅客和n辆汽车的同步程序代写
    [原]web服务器:SOAP,WSDL,UDDI
    用多进程同步方法演示“桔子-苹果”问题
    实验教学管理系统 c语言程序代写源码下载
    模拟游客一天的生活与旅游java程序代写源码
    Java作业代写
    快餐店运行模拟C++程序源码代写
    求可能组合VB源码代写
    深入源码分析Java线程池的实现原理
    ThreadLocal原理详解
  • 原文地址:https://www.cnblogs.com/Fooo/p/1678814.html
Copyright © 2020-2023  润新知