天天看點

google map學習

本來也沒想到要學習下google map,由于項目需要,是以簡單學習了下google map。

首先要加載google maps api,不然一切無從談起,

<script type="text/javascript" src="http://maps/api/js?sensor=false"></script>

必須要設定 sensor 參數,以指明此應用程式是否使用傳感器确定使用者的位置。

然後編寫地圖函數,在進行加載。

simple map:

<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
	var map;
	var marker;
	var infowindow;
	function initialize() {
		var latlng = new google.maps.LatLng(30.33,120.23);
		var myOption = {
			zoom:8,
			center:latlng,
			mapTypeId:google.maps.MapTypeId.ROADMAP
		};
		map = new google.maps.Map(document.getElementById('myMap'), myOption);
	}
</script>
</head>
<body onload="initialize()">
	<div id="myMap" style="width:600px;height:400px"></div>
</body>
</html>
           

也可以通過js事件加載:google.maps.event.addDomListener(window, 'load', initialize);

latlng對象是經緯度,mapTypeId有多種,具體google的挨批中有,一般主要使用ROADMAP。map就是地圖對象,zoom參數指定顯示地圖的詳細程度。

還可以為地圖添加标記,資訊視窗,事件等。

simple marker map:

<html>
<head>

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  function initialize() {
    var latlng = new google.maps.LatLng(30.3, 120.2);
    var myOptions = {
      zoom: 15,
      center: latlng,
	  disableDefaultUI: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	var markerOption = {
		position:latlng,
		map:map,
		title:"good"
	}
	var marker = new google.maps.Marker(markerOption);
	google.maps.event.addListener(marker, 'click', function() {
		if(map.getZoom() == 15) {
			map.setZoom(10);
		}else {
			map.setZoom(15);
		}
	});
	google.maps.event.addListener(map, 'click', function(event) {
		placeMarker(event.latLng, map);
	});
	function placeMarker(position, map) {
		var marker = new google.maps.Marker({
			position:position,
			map:map
		});
		map.panTo(position);
	}
  }

</script>
</head>
<body onload="initialize()">
  <div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
           

此代碼可以在地圖上任意添加marker。

simple window info map:

<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
	var map;
	var marker;
	var infowindow;
	function initialize() {
		var latlng = new google.maps.LatLng(30.33,120.23);
		var myOption = {
			zoom:8,
			center:latlng,
			mapTypeId:google.maps.MapTypeId.ROADMAP
		};
		map = new google.maps.Map(document.getElementById('myMap'), myOption);
		marker = new google.maps.Marker({
			position:latlng,
			map:map
		});
		var content = "good";
		infowindow = new google.maps.InfoWindow({
			content:content,
		});
	}
	google.maps.event.addDomListener(window, 'load', initialize);
	function hide() {
		var cmd = document.getElementById("show").value;
		if(cmd == "hide") {
			infowindow.close();
			document.getElementById("show").value = "show";
		}else {
			infowindow.open(map, marker);
			document.getElementById("show").value = "hide";
		}
	}
</script>
</head>
<body onload="initialize()">
	<div id="myMap" style="width:600px;height:400px"></div>
	<div><input type="button" onclick="hide()" value="show" id="show"/></div>
</body>
</html>
           

此代碼點選按鈕可以顯示marker上邊的info window,也可以隐藏。

标記也可以通過自定義。

其實對于google map的學習,google maps api中已經提供相當的例子,可以通過解讀源代碼來學習。

[url]http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/[/url]