博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GoogleMapsV3-----基础地图(自定义消息提示OverlayView) (转)
阅读量:6584 次
发布时间:2019-06-24

本文共 2952 字,大约阅读时间需要 9 分钟。

<html>

<head>

<title>

</title>

    <title></title>

    <style type="text/css">
        html
        {
            height: 100%;
        }
        body
        {
            height: 100%;
            margin: 0px;
            padding: 0px;
        }
        #map_canvas
        {
            height: 80%;
        }
    </style>
    <script type="text/javascript" src=""> </script>
    <script type="text/javascript">
        var map = null;
        var myLableMessage = null;
        //【初始化地图】
        //===========================================================================================================================
        function initialize() {
            //构建经纬度点
            var latlng = new google.maps.LatLng(30.277925, 120.177597);
            var myOptions =
            {
                zoom: 8,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.HYBRID
            };

            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        }
        //【自定义OverlayView】
        //===========================================================================================================================
            function myLable(latlng, text, map) {
                this.latlng_ = latlng;
                this.text_ = text;
                this.map_ = map;
                this.div_ = null;
                this.setMap(map);
            }

            myLable.prototype = new google.maps.OverlayView(); //您应当继承此类,方法是将叠加层的 prototype 设置为 new OverlayView.prototype

            //必须实现三个方法,即 onAdd()、draw() 和 onRemove()。在 draw() 方法中,应放置这些元素。

            //在 add() 方法中,您应当创建 DOM 对象,并将其作为窗格的子对象附加。调用有效地图对象的.setMap()
            myLable.prototype.onAdd = function () {

                var div = document.createElement('DIV');

                div.style.border = "none";
                div.style.borderWidth = "0px";
                div.style.position = "absolute";
                div.innerHTML = this.text_;
                this.div_ = div;
                var panes = this.getPanes();
                panes.floatPane.appendChild(div); ;

            }

            //每当地图属性更改时都会调用 draw() 方法,该方法可以更改元素的位置,如缩放、中心或地图类型。
            myLable.prototype.draw = function () {

                var overlayProjection = this.getProjection();

                var position = overlayProjection.fromLatLngToDivPixel(this.latlng_);

                var div = this.div_;

                div.style.left = position.x + 'px';
                div.style.top = position.y + 'px';
                div.style.width = '100px';
                div.style.background = "#ffffff";
                div.style.border = "1px solid #85a5b4";
            }

            //在 onRemove() 方法中,应将对象从 DOM 中删除。清除时调用有效地图对象的.setMap(null)

            myLable.prototype.onRemove = function () {
                this.div_.parentNode.removeChild(this.div_);
                this.div_ = null;
            }
            //===========================================================================================
            function LableMessage() {
                var lat = document.getElementById("lat_text").value;
                var lng = document.getElementById("lng_text").value;
                var text = document.getElementById("content_text").value;
                var latlng = new google.maps.LatLng(parseFloat(lng), parseFloat(lat));
                //如果myLableMessage不为null,则清除原来的
                if (myLableMessage != null) {
myLableMessage.setMap(null); myLableMessage = null; }
                //调用自定义OverlayView
                myLableMessage = new myLable(latlng, text, map);
            }

            function ClearLableMessage() {

                if (myLableMessage != null) {
myLableMessage.setMap(null); myLableMessage = null; }
            }
 </script>
</head>

<body onload="initialize()">

    <div id="map_canvas" style="width: 80%; height: 100%; float: left;">
    </div>
    <div id="Div1" style="width: 20%; height: 100%; overflow: scroll;">
        <hr />
        <p style="text-align: center;">

转载地址:http://gexno.baihongyu.com/

你可能感兴趣的文章
[c++]指针创建数组不会调用构造函数
查看>>
SCAU 10691 ACM 光环
查看>>
win7 php nginx 启动命令
查看>>
Android独立交叉编译环境搭建
查看>>
架设Hmailserver+webmail邮件服务器
查看>>
Python学习之二:Python 与 C 区别
查看>>
java中解析excel 批量插入数据库
查看>>
python模块
查看>>
RocketMQ最佳实践
查看>>
Kafka最佳实践
查看>>
STAR法则
查看>>
Ubuntu 16.04 LTS 安装Mongodb 3.4
查看>>
10-JavaScript之DOM的事件操作
查看>>
[ZJb417]区间众数
查看>>
陶哲轩实分析习题8.5.12
查看>>
陶哲轩实分析 命题7.2.5 证明
查看>>
UIImageView02
查看>>
WebRTC开发者必备 | 《WebRTC1.0: 浏览器间实时通讯》中文版免费下载
查看>>
ASP.NET MVC 4 Ajax上传文件
查看>>
C#Contains方法的错误理解
查看>>