GoogleMapsV3-----基础地图(自定义消息提示OverlayView)

<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="https://maps.google.com/maps/api/js?v=3.9&sensor=false®ion=cn"> </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 οnlοad="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;">        维度:<input type="text" id="lat_text"/><br />        经度:<input type="text" id="lng_text"/><br />        标签内容:<input type="text" id="content_text"/><br />        <input type="button" οnclick="LableMessage()" value="确定" />        <input type="button" οnclick="ClearLableMessage()" value="清除"/>        </p>   </div></body></html> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值