Java Blog for Alex Wan

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

          統(tǒng)計

          留言簿(10)

          BlogJava

          Blogs

          DIV+CSS

          JQuery相關(guān)

          友情鏈接

          常去的地方

          數(shù)據(jù)供應(yīng)

          閱讀排行榜

          評論排行榜

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

          前兩篇:

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

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

          創(chuàng)建圖標

          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);
                  
          //創(chuàng)建小圖標
                  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
          !');    
               }

          }
          );

          使用小圖標的效果

          使用更復(fù)雜圖標樣式
          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);
                  
          //創(chuàng)建一個圖標模板,指定陰影等
                  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);
                  
          //創(chuàng)建用指定字母作為前景圖的圖標
                  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) {//回調(diào)函數(shù)
                  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 閱讀(2907) 評論(5)  編輯  收藏 所屬分類: JavaScript

          評論

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

          不會用呀.  回復(fù)  更多評論   

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

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

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

          呵呵,不錯啊  回復(fù)  更多評論   

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

          路過,路過  回復(fù)  更多評論   

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

          經(jīng)典啊,有個打包的例子就更好了,我的網(wǎng)站 http://www.2zhai.com 正要用呢  回復(fù)  更多評論   

          主站蜘蛛池模板: 大港区| 抚远县| 深水埗区| 商丘市| 苍溪县| 安宁市| 武夷山市| 宜兴市| 赤水市| 准格尔旗| 临朐县| 凤冈县| 连州市| 三都| 都江堰市| 成都市| 织金县| 延长县| 连州市| 临澧县| 浮梁县| 安泽县| 余干县| 保康县| 上林县| 博罗县| 永吉县| 政和县| 肥乡县| 汽车| 原阳县| 银川市| 汉中市| 葫芦岛市| 濉溪县| 宁明县| 吴江市| 资兴市| 阿克陶县| 哈巴河县| 惠安县|