利用 google map 寫的地圖,簡單的用了一些功能

 

設置座標

 

    <script charset="utf-8" src="http://ditu.google.com/maps?file=api&amp;v=2&amp;key=<%=mapkey%>"
      type="text/javascript"></script>
   <script type="text/javascript">
  //<![CDATA[

  // Copyright 2007 Google Inc.
  // All Rights Reserved.

  /**
   * 這個例子演示了 Google 地圖 API 的以下功能:
   *   * 可拖拽的標記
   *   * 自定義標記的圖標
   *   * 計算地理距離
   *   * 事件處理(單擊)
   *   * 信息窗口
   *   * 和文檔模型(DOM)交互
   *
   * @author haogang
   */

  var targets = [
    {'name':'中心', 'pt':[37, 107], 'icon':'/images/google/images/blue'}
  ];
 
  var markers = [];          // 給用戶拖拽的標記
  var targetMarkers = [];    // 顯示正確答案的標記
  var map;                   // 全局的 Google 地圖控件
 
 
  /**
   * 爲信息窗口創建 DOM 對象,包括地點的名稱和簡要描述
   * @param {Number} i 該地點在 targets 數組中的下標
   */
  function createInfoWindow(i) {
    // 從網頁的隱藏部分載入該地點的描述性文字
    var targetDescs = document.getElementById('targetDescs');
    var desc = targetDescs.getElementsByTagName('div')[i].innerHTML;

    // 爲信息窗口創建動態 DOM 對象,這裏我們用 DIV 標籤
    var div = document.createElement('div');
    div.innerHTML = '<div style="font-size: 9pt; width:300px"><b>'
        + targets[i]['name'] + '</b><br/>' + desc + '</div>';

    // 當用戶關閉信息窗口時 Google Map API 會自動釋放該對象 
    return div;
  }
 
  /**
   * 本函數爲每個地點創建兩個標記:一個給用戶拖拽,另一個顯示標準答案
   * @param {Number} i 該地點在 targets 數組中的下標
   */
  function createMarker(i) {

    // 先創建給用戶拖拽的標記:一開始它們依次排列在地圖的左上角
    // 下一行代碼演示瞭如何將 map 控件的像素座標轉化爲經緯度
   <%if isnew=1 then
   %>
    var initPt = map.fromContainerPixelToLatLng(new GPoint((i + 1) * 100, 50));
 <%else%>  
  var initPt = new GLatLng(<%=xzb%>, <%=yzb%>);
 <%end if%>
    var ico = new GIcon(G_DEFAULT_ICON, targets[i]['icon'] + '.png');

    // 參數 draggable: true 表示可拖拽
    var marker=new GMarker(initPt, { draggable: true, icon: ico })
    markers.push(marker);
    //markers.push(new GMarker(initPt, { draggable: true, icon: ico }));

    // 再創建正確答案的標記:將它們放在正確的位置上,而且是不可拖拽的
    //var targetPt = new GLatLng(targets[i]['pt'][0], targets[i]['pt'][1]);
    //var marker = new GMarker(targetPt, { icon: new GIcon(ico) });
    //targetMarkers.push(marker);

    // 爲正確答案標記添加事件處理函數:用戶單擊它時會彈出信息窗口
    GEvent.addListener(marker, 'click',
        function() {
          marker.openInfoWindow('<%=sm%>');
        }
       
       
       
    );
     map.addOverlay(markers[i]);
  }
 
 


  /**
   * 創建地圖控件,以及兩組標記
   */
  function load() {
    if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById('map'));
      // 將視圖移到中國
      map.setCenter(new GLatLng(37, 107), 4);
     
    // 給地圖添加內置的控件,分別爲:
      // 平移及縮放控件(左上角)、比例尺控件(左下角)
      map.addControl(new GLargeMapControl());
      map.addControl(new GScaleControl());
      //map.addControl(new GOverviewMapControl());
     
     
      // 爲 targets 數組中的每個地點,創建兩個標記
      for (i = 0; i < targets.length; i++) {
        createMarker(i);
      }

    }
  }


  function getwz()
  {
  var marker = markers[0].getPoint();
  var y = marker.lng();
  var x = marker.lat();

  alert(x)
  }
  //]]>

 <body οnlοad="load()" οnunlοad="GUnload()" topmargin="0" leftmargin="0">

 

列表顯示

 

    <script charset="utf-8" src="http://ditu.google.com/maps?file=api&amp;v=2&amp;key=<%=mapkey%>"
      type="text/javascript"></script>
   <script type="text/javascript">
  //<![CDATA[

  // Copyright 2007 Google Inc.
  // All Rights Reserved.

  /**
   * 這個例子演示了 Google 地圖 API 的以下功能:
   *   * 可拖拽的標記
   *   * 自定義標記的圖標
   *   * 計算地理距離
   *   * 事件處理(單擊)
   *   * 信息窗口
   *   * 和文檔模型(DOM)交互
   *
   * @author haogang
   */

        // 爲所有標記創建指定陰影、圖標尺寸燈的基礎圖標
        var baseIcon = new GIcon();
       // baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new GSize(30, 30);
        baseIcon.shadowSize = new GSize(0, 0);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
        baseIcon.infoShadowAnchor = new GPoint(18, 25);


  var targets = [
  <%
  while not rs.eof
  %>
    {'name':'<%=rs("buserc")%>', 'pt':[<%=rs("cxzbc")%>, <%=rs("yzbc")%>], 'icon':'/images/google/images/<%if rs("picc")=0 then response.write "blue" else response.write rs("pict") end if%>', 'pic':'<%=rs("pict")%>', 'sm':'<%=rs("smc")%>','sp':'<%=rs("usid")%>'},
  <%
  rs.movenext
  wend
  rs.close
  set rs=nothing
  cn.close
  set cn=nothing
  %>
  {'name':'養殖商務網', 'pt':[39.69457354187826, 118.17776441574096], 'icon':'/images/google/images/red', 'pic':'0', 'sm':'養殖商務網歡迎您!<br><a href=http://www.yangzhi.com target=_blank><img src=http://www.yangzhi.com/logo.jpg border=0></a>','sp':'0'}
  ];
 
  var markers = [];          // 給用戶拖拽的標記
  var targetMarkers = [];    // 顯示正確答案的標記
  var map;                   // 全局的 Google 地圖控件
 
 
  /**
   * 爲信息窗口創建 DOM 對象,包括地點的名稱和簡要描述
   * @param {Number} i 該地點在 targets 數組中的下標
   */
  function createInfoWindow(i) {
    // 從網頁的隱藏部分載入該地點的描述性文字
    var targetDescs = document.getElementById('targetDescs');
    var desc = targetDescs.getElementsByTagName('div')[i].innerHTML;

    // 爲信息窗口創建動態 DOM 對象,這裏我們用 DIV 標籤
    var div = document.createElement('div');
    div.innerHTML = '<div style="font-size: 9pt; width:300px"><b>'
        + targets[i]['name'] + '</b><br/>' + desc + '</div>';

    // 當用戶關閉信息窗口時 Google Map API 會自動釋放該對象 
    return div;
  }
 
  /**
   * 本函數爲每個地點創建兩個標記:一個給用戶拖拽,另一個顯示標準答案
   * @param {Number} i 該地點在 targets 數組中的下標
   */
  function createMarker(i) {

    // 先創建給用戶拖拽的標記:一開始它們依次排列在地圖的左上角
    // 下一行代碼演示瞭如何將 map 控件的像素座標轉化爲經緯度

 var initPt = new GLatLng(targets[i]['pt'][0], targets[i]['pt'][1]);

 if(targets[i]['pic']=="0")
 {

 var ico = new GIcon(G_DEFAULT_ICON, targets[i]['icon'] + '.png');
 }
 else
 {

 var ico = new GIcon(baseIcon, targets[i]['icon'] + '.png');
 }
 
 

    // 參數 draggable: true 表示可拖拽
    var marker=new GMarker(initPt, { draggable: false, icon: ico })
   
    markers.push(marker);
    //markers.push(new GMarker(initPt, { draggable: true, icon: ico }));

    // 爲正確答案標記添加事件處理函數:用戶單擊它時會彈出信息窗口
    GEvent.addListener(marker, 'click',
        function() {
          marker.openInfoWindow("<b>"+targets[i]['name']+"</b>:"+targets[i]['sm']+"<br><Br><a href=/"http://www.yangzhi.com/sp.asp?fid=" + targets[i]['sp'] + "/" target=_blank>我的商鋪</a> <a href=/"http://www.yangzhi.com/ly.asp?fid=" + targets[i]['sp'] + "/" target=_blank>給我留言</a>");
        }
       
    );
     map.addOverlay(markers[i]);
   markers[i].openInfoWindow("<b>"+targets[i]['name']+"</b>:"+targets[i]['sm']);
  }
 
 


  /**
   * 創建地圖控件,以及兩組標記
   */
  function load() {
    if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById('map'));
      // 將視圖移到中國
      map.setCenter(new GLatLng(37, 107), 4);
     
    // 給地圖添加內置的控件,分別爲:
      // 平移及縮放控件(左上角)、比例尺控件(左下角)
      map.addControl(new GLargeMapControl());
      map.addControl(new GScaleControl());
      //map.addControl(new GOverviewMapControl());
     
     
      // 爲 targets 數組中的每個地點,創建兩個標記
      for (i = 0; i < targets.length; i++) {
        createMarker(i);
      }

    }
  }

  </script>
  </head>
  <body οnlοad="load()" οnunlοad="GUnload()" topmargin="0" leftmargin="0">

發佈了49 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章