<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&region=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 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;">

GoogleMapsV3-----基础地图(自定义消息提示OverlayView) (转)的更多相关文章

  1. 百度地图开发的学习(一)——配置环境&基础地图

    由于项目需求缘故,最近在学习Android地图的开发,所以就记录一下学习过程.最近都会陆续更新啦.目前使用百度地图API的挺多的,所以就先以它为基础学习一些地图的调用. 一.AK的申请 与web开发不 ...

  2. 基础地图Android SDK

    开发者可利用SDK提供的接口,使用百度为您提供的基础地图数据.目前百度地图SDK所提供的地图等级为3-21级,所包含的信息有建筑物.道路.河流.学校.公园等内容. V3.7.0起,地图支持缩放至21级 ...

  3. ArcGIS API For JavaScript 开发(二)基础地图

    有了开发环境,接下来的就是实践了,实践是检验真理的唯一标准! 多多练习,不要觉得自己能够想的出来就万事大吉了,还是得动手做才是最好的检验自己的能力. 基础地图,本节将通过arcgis api for ...

  4. 百度地图 key申请以及基础地图的演示

    之前做过一个拼车的项目,用到了百度地图,如今做电商项目,也遇到了要使用地图,可是刚来这公司不久项目不是自己做的,今天一个同事说定位那边有点问题,所以如今不忙,好好搞下地图,为了以后业务扩展或者出现故障 ...

  5. 高德地图搜索提示获取信息回传activity刷新ui(二)

    应用场景: 在主activity中点击进入到另一个activity搜索提示,获取经纬度,点确定返回到主activity,虽然说需求很奇葩,但是遇到了没办法.. 主要包含两部分,搜索提示+activit ...

  6. 百度地图API提示"230错误 APP Scode校验失败"

    笔者近2天在 Android Studio上玩了一下百度地图,碰到了常见的"230错误 APP Scode校验失败",下面我来介绍一下具体的解决办法. 1.在andriodstud ...

  7. arcgis api 4.x for js之基础地图篇

    arcgis api3.x for js转向arcgis api4.x,我也是最近的3-4个月时间的事情,刚好公司有个webgis项目需要展示三维场景,项目选择arcgis api4.x.我纯碎记录一 ...

  8. Android下百度地图开发(一):基础地图展示

    最终效果如: 这个需要详细说下,准备工作较为繁琐. 第一步:去百度申请一个开发者账号,新建一个android应用,会让你输入开发者SHA1,目前我只拿到开发版SHA1,发布版那里也填的是这个. 获取方 ...

  9. 百度地图Api进阶教程-基础地图示例1.html

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

随机推荐

  1. Android - 错误:&quot;No resource found that matches the given name android:Theme.Material&quot;

    Android - 错误:"No resource found that matches the given name android:Theme.Material" 本文地址:  ...

  2. 巧妙利用函数的惰性载入提高javascript 代码性能

    在 javascript 代码中,因为各浏览器之间的行为的差异,我们经常会在函数中包含了大量的 if 语句,以检查浏览器特性,解决不同浏览器的兼容问题. 例如,我们最常见的为 dom 节点添加事件的函 ...

  3. nginx配置解决vue单页面打包文件大,首次加载慢的问题

    cnpm run build 文件过大,其中主要是vender.js有1.5M,代码部署到服务器,首次访问加载页面时比较慢,耗时6.5s左右,所以需要优化下. 1.Nginx开启gzip 找到ngin ...

  4. Android -- 打开本地图片且显示路径

    背景                                                                                          代码       ...

  5. debug输出rect,size和point的宏

    #define NSLogRect(rect) NSLog(@"%s x:%.4f, y:%.4f, w:%.4f, h:%.4f", #rect, rect.origin.x,  ...

  6. 给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数。 (即,使用函数rand5()来实现函数rand7())

    给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数. (即,使用函数rand5()来实现函数rand7()). 解答 rand5可以随机生成1,2,3,4,5:rand7可以随机生成1 ...

  7. 总结js(1)

    已经一个月没敲代码了,工作难找,挺烦. 先总结一下javascript吧. 1.js概述 2.语法结构 3.类型.值和变量 4.表达式和运算符 5.语句 6.对象 7.数组 8.函数 9.类和模块 1 ...

  8. 算法笔记_183:历届试题 九宫重排(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成 ...

  9. 修改MySQL数据文件的位置

    1:查看MySQL服务名称 2:管理员启动控制台 3:修改配置文件my.ini中数据文件的位置,[注]修改完成之后要把响应的数据文件从旧目录拷贝到新目录当中. 4:重新启动服务 5:登录数据库查看数据 ...

  10. 整理两个JVM博客集合,空闲时候可以看

    纯洁的微笑写的:https://www.cnblogs.com/ityouknow/p/5614961.html 集合:http://www.cnblogs.com/ityouknow/categor ...