Java Blog for Alex Wan

          Let life be beautiful like summer flowers and death like autumn leaves.

          統計

          留言簿(10)

          BlogJava

          Blogs

          DIV+CSS

          JQuery相關

          友情鏈接

          常去的地方

          數據供應

          閱讀排行榜

          評論排行榜

          [javascript]google map api 與jquery結合使用(3) --圖標樣式,使用xml和異步請求

          前兩篇:

          [javascript]google map api 與jquery結合使用(1)--控件,監聽器

          [javascript]google map api 與jquery結合使用(2) --標注,浮窗

          創建圖標

          map.js

          $(document).ready(function()
          {
               
          if (GBrowserIsCompatible()) {
                   
          var map = new GMap2(document.getElementById("map"));
                  map.addControl(
          new GSmallMapControl());
                  map.addControl(
          new GMapTypeControl());
                  map.setCenter(
          new GLatLng(36.94,106.08),4);
                  
          //創建小圖標
                  var icon = new GIcon();
                          
          //圖標圖片
                  icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
                          
          //圖標陰影圖片
                  icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
                          
          //圖標大小
                  icon.iconSize = new GSize(1220); 
                          
          //陰影大小
                  icon.shadowSize = new GSize(2220);
                          
          //圖標錨點
                  icon.iconAnchor = new GPoint(620);
                          
          //信息浮窗錨點
                  icon.infoWindowAnchor = new GPoint(51);
                  
          //隨機的添加10個標記
                  var bounds = map.getBounds();
                  
          var southWest = bounds.getSouthWest();
                  
          var northEast = bounds.getNorthEast();
                  
          var lngSpan = northEast.lng() - southWest.lng();
                  
          var latSpan = northEast.lat() - southWest.lat();
                  
          for (var i = 0; i < 10; i++{
                  
          var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                      southWest.lng() 
          + lngSpan * Math.random());
                  map.addOverlay(
          new GMarker(point, icon));
                  }

                  $(window).unload(
          function (){
                         $('.').unbind();
                         GUnload();
                     }
          );
               }
          else
               
          {
                   alert('你使用的瀏覽器不支持 Google Map
          !');    
               }

          }
          );

          使用小圖標的效果

          使用更復雜圖標樣式
          map.js

          $(document).ready(function()
          {
               
          if (GBrowserIsCompatible()) {
                   
          var map = new GMap2(document.getElementById("map"));
                  map.addControl(
          new GSmallMapControl());
                  map.addControl(
          new GMapTypeControl());
                  map.setCenter(
          new GLatLng(36.94,106.08),4);
                  
          //創建一個圖標模板,指定陰影等
                  var baseIcon = new GIcon();
                  baseIcon.shadow 
          = "http://www.google.com/mapfiles/shadow50.png";
                  baseIcon.iconSize 
          = new GSize(2034);
                  baseIcon.shadowSize 
          = new GSize(3734);
                  baseIcon.iconAnchor 
          = new GPoint(934);
                  baseIcon.infoWindowAnchor 
          = new GPoint(92);
                  baseIcon.infoShadowAnchor 
          = new GPoint(1825);
                  
          //創建用指定字母作為前景圖的圖標
                  function createMarker(point, index) {
                  
          // Create a lettered icon for this point using our icon class
                  var letter = String.fromCharCode("A".charCodeAt(0+ index);
                  
          var icon = new GIcon(baseIcon);
                  icon.image 
          = "http://www.google.com/mapfiles/marker" + letter + ".png";
                  
          var marker = new GMarker(point, icon);
                  GEvent.addListener(marker, 
          "click"function() {
                  marker.openInfoWindowHtml(
          "Marker <b>" + letter + "</b>");
                  }
          );
                  
          return marker;
                  }

                  
          //隨機添加10個標記
                  var bounds = map.getBounds();
                  
          var southWest = bounds.getSouthWest();
                  
          var northEast = bounds.getNorthEast();
                  
          var lngSpan = northEast.lng() - southWest.lng();
                  
          var latSpan = northEast.lat() - southWest.lat();
                  
          for (var i = 0; i < 10; i++{
                      
          var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                          southWest.lng() 
          + lngSpan * Math.random());
                      map.addOverlay(createMarker(point, i));
                  }

                  $(window).unload(
          function (){
                         $('.').unbind();
                         GUnload();
                     }
          );
               }
          else
               
          {
                   alert('你使用的瀏覽器不支持 Google Map
          !');    
               }

          }
          );

          用指定字母作為前景圖的圖標效果

          在地圖上使用XML和異步請求(AJAX)

          map.js
          $(document).ready(function()
          {
               
          if (GBrowserIsCompatible()) {
                   
          var map = new GMap2(document.getElementById("map"));
                 map.addControl(
          new GLargeMapControl());
                  map.addControl(
          new GOverviewMapControl());
                   
                  map.addControl(
          new GMapTypeControl());
                  map.setCenter(
          new GLatLng(36.94,106.08),4);
                          
          //ajax請求
                  GDownloadUrl("locations.xml"function(data, responseCode) {//回調函數
                  var xml = GXml.parse(data);
                  
          var markers = xml.documentElement.getElementsByTagName("marker");//解析xml,有多種方法
                  for (var i = 0; i < markers.length; i++{
                      
          var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                      parseFloat(markers[i].getAttribute(
          "lng")));
                      map.addOverlay(
          new GMarker(point));
                  }

                  }
          );
                  $(window).unload(
          function (){
                         $('.').unbind();
                         GUnload();
                     }
          );
               }
          else
               
          {
                   alert('你使用的瀏覽器不支持 Google Map
          !');    
               }

          }
          );

          locations.xml
          <markers>
          <marker lat="39.98629852076348" lng="116.3574438359872"/>
          <marker lat="29.94176113301537" lng="112.6857368551186"/>
          </markers>

          ajax的效果圖

          對google map api的使用暫告一段落。

          Let life be beautiful like summer flowers and death like autumn leaves.

          posted on 2008-11-19 00:22 Alexwan 閱讀(2900) 評論(5)  編輯  收藏 所屬分類: JavaScript

          評論

          # re: [javascript]google map api 與jquery結合使用(3) --圖標樣式,使用xml和異步請求 2008-11-19 20:17 網站優化

          不會用呀.  回復  更多評論   

          # re: [javascript]google map api 與jquery結合使用(3) --圖標樣式,使用xml和異步請求 2008-11-20 11:51 Alexwan

          看看前面兩篇文章或許有點幫助。  回復  更多評論   

          # re: [javascript]google map api 與jquery結合使用(3) --圖標樣式,使用xml和異步請求 2008-12-23 18:52 網站建設

          呵呵,不錯啊  回復  更多評論   

          # re: [javascript]google map api 與jquery結合使用(3) --圖標樣式,使用xml和異步請求 2008-12-23 18:53 網站優化

          路過,路過  回復  更多評論   

          # re: [javascript]google map api 與jquery結合使用(3) --圖標樣式,使用xml和異步請求 2010-07-06 21:45 淘寶網

          經典啊,有個打包的例子就更好了,我的網站 http://www.2zhai.com 正要用呢  回復  更多評論   

          主站蜘蛛池模板: 定陶县| 儋州市| 兴和县| 饶平县| 宝山区| 图木舒克市| 乐山市| 洛浦县| 肃宁县| 兴安盟| 虎林市| 铁岭县| 南汇区| 巍山| 山丹县| 阜康市| 昭苏县| 十堰市| 都昌县| 兴和县| 城口县| 新巴尔虎左旗| 铜鼓县| 海原县| 广丰县| 元谋县| 论坛| 宁津县| 长寿区| 贵南县| 都昌县| 新乡县| 来宾市| 乃东县| 苗栗市| 镇原县| 红河县| 武汉市| 永康市| 偏关县| 定边县|