<%@ 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>

posted on 2010-10-21 15:41  WQL.NET  阅读(118)  评论(0编辑  收藏  举报