<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Control_Custom_State.aspx.cs"
Inherits="Samples.Controls.Control_Custom_State" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>为控件添加状态</title>
<style type="text/css">
#maps
{
height: 450px;
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=zh-CN"></script>
<script type="text/javascript" language="javascript">
var map;
var chicago = new google.maps.LatLng(41.850033, -87.6500523);
HomeControl.prototype.home_ = null;
HomeControl.prototype.getHome = function() { //获取home值
return this.home_;
}
HomeControl.prototype.setHome = function(home) {//设置home值
this.home_ = home;
}
//创建home和set home两个控件,点击setHome时将当前中心设置为Home值,点击home时将地图中心设置为home值
function HomeControl(map, div, home) {
var controlDiv = div;
var control = this;
control.home_ = home;
controlDiv.style.padding = '5px';
var goHomeUI = document.createElement("DIV");
goHomeUI.title = "Click to set the map to Home";
controlDiv.appendChild(goHomeUI);
var goHomeText = document.createElement("DIV");
goHomeText.innerHTML = "Home";
goHomeUI.appendChild(goHomeText);
var setHomeUI = document.createElement("DIV");
setHomeUI.title = "Click to set Home to the current center";
controlDiv.appendChild(setHomeUI);
var setHomeText = document.createElement("DIV");
setHomeText.innerHTML = "Set Home";
setHomeUI.appendChild(setHomeText);
google.maps.event.addDomListener(goHomeUI, "click", function() {//绑定home控件的Click事件,点击home时获取home值,并将地图中心设置为home值
var currentHome = control.getHome();
map.setCenter(currentHome);
});
google.maps.event.addDomListener(setHomeUI, "click", function() {//绑定sethome控件的click事件,点击sethome时将当前地图中心设置为home值
var newHome = map.getCenter();
control.setHome(newHome);
});
}
//地图初始化函数
function initialize() {
var mapDiv = document.getElementById("maps");
var Options = { zoom: 12, center: chicago, mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(mapDiv, Options);
var homeControlDiv = document.createElement("DIV"); //创建自定义控件容器
var homeControl = new HomeControl(map, homeControlDiv, chicago); //创建自定义控件
homeControlDiv.index = 1; //设置自定义控件容器index属性
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv); //将装有自定义控件的容器放置在地图的顶部右侧
}
google.maps.event.addDomListener(window, "load", initialize); //将地图初始化函数绑定到window的load事件
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="maps">
</div>
</form>
</body>
</html>