• google map api 与jquery结合使用(3) 图标样式,使用xml和异步请求【转帖】


    创建图标

    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>
  • 相关阅读:
    HDU1213How Many Tables并查集
    Redis新的存储模式diskstore
    GPFS文件系统笔记
    redis持久化
    360安全卫士qurl.f.360.cn分析
    [原创]解决DataSet的GetXml()方法空列不返回问题
    在多台服务器上简单实现Redis的数据主从复制
    史航416随笔
    史航416实验1总结
    史航416第二次作业总结
  • 原文地址:https://www.cnblogs.com/nosnowwolf/p/2261951.html
Copyright © 2020-2023  润新知