Google Map Demo

 <HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<TITLE> Google Map & Google Local Search Demo </TITLE>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAdI0zGVgYqTKHphoxD6Ts7RStrDQCRAqEw3qj75gyDXKipO0rfhSjjCwKU9CeQlegTB_-A2G4yly6wg"
            type="text/javascript"></script>

<script src="http://www.google.com/jsapi"   type="text/javascript"></script>

<script>
    var map;
    var center;
    var showmark = false;
    var marker;
    var localSearch;
    var geocoder = null;
    var address = "";
    var marker_array = new Array();

   
    function doGetLocationsComplete(response) {
       
        address = ""
        if (!response || response.Status.code != 200)
        {
//             alert("对不起,不能解析这个地址");
//             alert(response);
//             alert(response.Status.code);
        }
        else
        {    
            for(var i=0;i<response.Placemark.length;i++)
            {
                address += '<div>' + response.Placemark[i].address + '</div>';
            }
           
        }
        var infoHtml =  '<div><img src = "file:///d:/green.png" /> </div>' + '<div>' + marker.getLatLng() + '</div>' + address;    
        marker.bindInfoWindowHtml(infoHtml);
        marker.openInfoWindow(infoHtml);
   }

   
    function setMarkLatLng(latLng) {
        geocoder.getLocations(latLng, doGetLocationsComplete);
        marker.setLatLng(latLng);       
       
//         var infoHtml =  '<div><img src = "file:///d:/green.png" /> </div>' + '<div>' + latLng.toUrlValue() + '</div>' + address;    
//         marker.bindInfoWindowHtml(infoHtml);
//         marker.openInfoWindow(infoHtml);
    }
   
   
    function doLocalSearchComplete() {
   
        map.clearOverlays();
        map.addOverlay(marker);
//         marker_array.clear();
       
       
        var results = localSearch.results;   
        if (results.length > 0) {
           
            zoom = map.getZoom();
            if (zoom < 13)
                zoom = 13;
               
            point = new GLatLng(results[0].lat, results[0].lng);           
            map.setCenter(point, zoom);
           
            for (var i = 0; i < results.length; i++)
            {
                var ico = new GIcon(G_DEFAULT_ICON);
                var letter = String.fromCharCode("A".charCodeAt(0) + i);   
                ico.image= "http://www.google.com/mapfiles/marker" + letter + ".png";
               
                var pointi = new GLatLng(results[i].lat, results[i].lng);
                marker_array[i] = new GMarker(pointi, {draggable: false, icon: ico});
                map.addOverlay(marker_array[i]);
            }
           
           
            setMarkLatLng(point);
            marker_array[0].hide();
           
        }
        else
            alert("search result 0!");
           
        localSearch.clearResults(); 
    }
  
    google.load('search', '1');
   
    function OnLoad() {
       localSearch = new google.search.LocalSearch();
       localSearch.setSearchCompleteCallback(this, doLocalSearchComplete);
    }
   
    google.setOnLoadCallback(OnLoad);   

   
    function doMarkersSetCallback(markers) { 
        for (var num = 0; num < markers.length; num ++) {
            markers[num].marker.hide();       
        }
       
        if (markers.length > 0) {
            setMarkLatLng(markers[0].marker.getLatLng());
        }      
    }


    function doGenerateMarkerHtmlCallback(newmarker,html,result) {
        alert("doGenerateMarkerHtmlCallback");
    }
     
    function doSearchCompleteCallback(searcher) {
        var results = searcher.results;
        if (results.length > 0) {
            point = new GLatLng(results[0].lat, results[0].lng);
            map.setCenter(point);
            setMarkLatLng(point);
        }
        else
            alert("search result 0!");
           
        results.length = 0;           
//         searcher.clearResults();  
    }
   
    function initialize()
    {
        if (GBrowserIsCompatible())
        {   
            map = new GMap2(document.getElementById("gmap"),
                {googleBarOptions:{         
                      onSearchCompleteCallback : doSearchCompleteCallback,
                    onMarkersSetCallback:doMarkersSetCallback,
                    onGenerateMarkerHtmlCallback:doGenerateMarkerHtmlCallback,
                    suppressInitialResultSelection:true,
                    resultList:G_GOOGLEBAR_RESULT_LIST_SUPPRESS
                }}
            );
           
            map.addControl(new GSmallMapControl());
            map.enableGoogleBar();
            map.addControl(new GMapTypeControl());
           
            map.addMapType(G_PHYSICAL_MAP);
           
            map.getPane(G_MAP_FLOAT_SHADOW_PANE).style.display = "none";
 
            center = new GLatLng(0,0);
            map.setCenter(center, 1);
        
            var ico = new GIcon(G_DEFAULT_ICON);
            ico.image="green.png";
            marker = new GMarker(center, {draggable: true, icon: ico});
//             marker = new GMarker(center, {draggable: true});
   
            geocoder = new GClientGeocoder();

            GEvent.addListener(marker, "dragend", function(point) {
                setMarkLatLng(point);
            });
          
            GEvent.addListener(map, "mousemove", function(point) {
                if (showmark) {
                    marker.setLatLng(point);
                }
            });

            GEvent.addListener(map, "click", function(o, point) {        
                if (showmark) {
                    setMarkLatLng(point);
                    showmark = false;
                }         
            });
      
            map.addOverlay(marker);           
        }
    }


    function Button1_onclick() {
        showmark = true;
    }

   
    function Button2_onclick() {
        var queryValue = document.getElementById("query").value;
        localSearch.setCenterPoint(map);
        localSearch.execute(queryValue);
    }

    </script>
</HEAD>
<body οnlοad="initialize()">

<div id = "gmap" style="position:absolute;   z-index:0; width: 780px; height: 420px; left: 23px; top: 20px;">
        
</div>

<img src = "green.png" input id="Button1" type="button"  style="z-index:1;position:relative; left: 66px; top: 18px; width: 20px; height: 34px;"
             οnclick="return Button1_onclick()" />

<input id="query" type="text" style="z-index:1; position:relative; left: 22px; top: 443px; width: 300px; height: 25px;" />
<input id="Button2" type="button" value="Search" style="z-index:1; position:relative; left: 22px; top: 443px; width: 76px; height: 25px;"   οnclick="return Button2_onclick()" />


</body>
</HTML>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值