<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&v=2&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>