是否可以在 Google Maps API v3 上编写自定义文本?

2024-05-02

是否可以在 Google Maps API v3 上的标记旁边写入自定义文本,或者我只能使用信息窗口来执行此操作?


要显示自定义文本,您需要创建自定义叠加层。以下是改编自 Google 官方文档的示例。你也可以使用这个图书馆 http://code.google.com/p/google-maps-utility-library-v3/wiki/Libraries更多“时尚”信息窗口

<html>

<head>
  <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
  </script>
  <script>
    //adapded from this example http://code.google.com/apis/maps/documentation/javascript/overlays.html#CustomOverlays
     //text overlays
    function TxtOverlay(pos, txt, cls, map) {

      // Now initialize all properties.
      this.pos = pos;
      this.txt_ = txt;
      this.cls_ = cls;
      this.map_ = map;

      // We define a property to hold the image's
      // div. We'll actually create this div
      // upon receipt of the add() method so we'll
      // leave it null for now.
      this.div_ = null;

      // Explicitly call setMap() on this overlay
      this.setMap(map);
    }

    TxtOverlay.prototype = new google.maps.OverlayView();



    TxtOverlay.prototype.onAdd = function() {

      // Note: an overlay's receipt of onAdd() indicates that
      // the map's panes are now available for attaching
      // the overlay to the map via the DOM.

      // Create the DIV and set some basic attributes.
      var div = document.createElement('DIV');
      div.className = this.cls_;

      div.innerHTML = this.txt_;

      // Set the overlay's div_ property to this DIV
      this.div_ = div;
      var overlayProjection = this.getProjection();
      var position = overlayProjection.fromLatLngToDivPixel(this.pos);
      div.style.left = position.x + 'px';
      div.style.top = position.y + 'px';
      // We add an overlay to a map via one of the map's panes.

      var panes = this.getPanes();
      panes.floatPane.appendChild(div);
    }
    TxtOverlay.prototype.draw = function() {


        var overlayProjection = this.getProjection();

        // Retrieve the southwest and northeast coordinates of this overlay
        // in latlngs and convert them to pixels coordinates.
        // We'll use these coordinates to resize the DIV.
        var position = overlayProjection.fromLatLngToDivPixel(this.pos);


        var div = this.div_;
        div.style.left = position.x + 'px';
        div.style.top = position.y + 'px';



      }
      //Optional: helper methods for removing and toggling the text overlay.  
    TxtOverlay.prototype.onRemove = function() {
      this.div_.parentNode.removeChild(this.div_);
      this.div_ = null;
    }
    TxtOverlay.prototype.hide = function() {
      if (this.div_) {
        this.div_.style.visibility = "hidden";
      }
    }

    TxtOverlay.prototype.show = function() {
      if (this.div_) {
        this.div_.style.visibility = "visible";
      }
    }

    TxtOverlay.prototype.toggle = function() {
      if (this.div_) {
        if (this.div_.style.visibility == "hidden") {
          this.show();
        } else {
          this.hide();
        }
      }
    }

    TxtOverlay.prototype.toggleDOM = function() {
      if (this.getMap()) {
        this.setMap(null);
      } else {
        this.setMap(this.map_);
      }
    }




    var map;

    function init() {
      var latlng = new google.maps.LatLng(37.9069, -122.0792);
      var myOptions = {
        zoom: 4,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };
      map = new google.maps.Map(document.getElementById("map"), myOptions);

      var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: "Hello World!"
      });

      customTxt = "<div>Blah blah sdfsddddddddddddddd ddddddddddddddddddddd<ul><li>Blah 1<li>blah 2 </ul></div>"
      txt = new TxtOverlay(latlng, customTxt, "customBox", map)

    }
  </script>
  <style>
    .customBox {
      background: yellow;
      border: 1px solid black;
      position: absolute;
    }
  </style>
</head>

<body onload="init()">
  <div id="map" style="width: 600px; height: 600px;">
  </div>
</body>

</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Google Maps API v3 上编写自定义文本? 的相关文章

  • 转换 google.maps.Point 中的 (x, y) 像素坐标

    我试图根据我的 x y 像素坐标 当然还有地图选项 例如缩放和中心 找出 LatLng 为了做到这一点 我发布了另一个question https stackoverflow com questions 25219346 how to co
  • Google 地图 v3 ImageMapType 防止换行

    我正在尝试复制在以下位置看到的行为 http forevermore net articles photo zoom http forevermore net articles photo zoom 它允许平移和缩放照片 但将平移限制在照片
  • 谷歌地图通过骨干javascript返回div标签但不显示

    我已经开始使用地理定位 我可以获得坐标等 我想在地图中显示它 但是当我将地图返回到 div 时 什么也没有显示 现在我查看了 div 地图正在返回 但只是不可见 这是有问题的 div 请注意 这似乎只是一个小地图的链接 a style di
  • 谷歌地图及其标记

    我有一个标记位置的 JSON 数组被拉入 Google 地图 这工作正常 我还将 infoWindows 链接到每个标记 这些也工作得很好 但是 当我单击标记 在任何浏览器中 时 信息窗口仅出现在最后添加的标记上方 这是一个小提琴 http
  • 根据已知的纬度和经度点在图像上放置点的尝试失败

    我为这个含糊的标题道歉 我真的想不出更好的方法来总结它 非常欢迎提出建议 我正在开发一个实际上不需要谷歌地图的项目 它只会为这个项目带来额外的开销 但是 到目前为止 我不知道如何在没有谷歌地图的情况下做到这一点 如果我要将平面图的图形叠加层
  • Android 在谷歌地图上绘制带箭头的折线和方向路径

    I have added polylines but not able to add arrow with direction on google map should be display as below And when it zoo
  • Font Awesome 图标作为 Google Maps API V3 中的标记

    我想使用一个很棒的字体图标作为 Google 地图标记 这是我的代码 function addMarker marker marker1 new google maps Marker position new google maps Lat
  • 当搜索栏改变大小时,Android v2 版 Google 地图上的圆圈会闪烁

    我正在按照此方法实现一种在 Android 中的 Google 地图 v2 上显示搜索半径的方法 Method for drawing a circle around the user private void drawMapSearchR
  • 如何在默认 Google 地图上方添加叠加地图?

    从一开始就需要明确的是 我从未在我的任何程序 项目中使用过谷歌地图 所以我对此事有一点了解 另外 我在 SO 中发现了一些关于 Google 地图的其他帖子 但我不确定这些帖子是否真的对我的情况有帮助 我想要做的是在现有的 Google 地
  • Google Maps API v3 在地图加载后不会禁用滚轮

    我正在网站上实现谷歌地图 一切都工作得很好 除了地图加载后我似乎无法禁用滚轮 如果我在地图加载之前将选项设置为scrollwheel false 则滚轮将被禁用 但如果我稍后尝试执行此操作 我有一个启用 禁用滚轮的复选框 以下是我在页面加载
  • MKAnnotationView 的不同字体

    在iPhone SDK地图上的标注气泡上 可以更改标题和副标题属性的字体吗 我对标注气泡中显示的默认字体不满意 并且希望使用不同的字体来匹配我的应用程序的其余部分 然而 我没有看到太多提及这一点 这让我担心这可能是不可能的 我见过构建自定义
  • Google Geolocation API - 使用经度和纬度获取文本框中的地址?

    我注意到很多关于如何使用基于 IP 地址的 Google 地理定位查找您的位置的信息 但我想知道是否以及如何使用此服务来输入位置 经度和纬度 并获取当前地址 或至少是一个城市 州 我想用 C 来完成此操作 但我可以使用任何语言 有什么建议吗
  • Flex 相当于 Google Visualization Geomap(等值线地图)?

    The 谷歌可视化地理地图 http code google com apis visualization documentation gallery geomap html Overview组件是一个等值线地图 http en wikip
  • 修复了 Google 地图混搭中的图例

    我有一个带有 Google 地图混搭的页面 其中的图钉按日期 周一 周二等 进行颜色编码 包含地图的 IFrame 是动态调整大小的 因此当浏览器窗口调整大小时 它也会调整大小 我想在地图窗口的一角放置一个图例 告诉用户每种颜色的含义 Go
  • 以编程方式设置谷歌地图片段可见性(API2)

    xml
  • 使用 Selenium 放置嵌入的谷歌地图标记

    我有一个 asp net 网站 作为向导的一部分 它使用嵌入式谷歌地图通过单击地图放置标记来选择位置 我如何使用 Selenium 实现自动化 我特别尝试过 ClickAt 双击 鼠标按下 鼠标按下 在所有情况下 传递地图 div id 作
  • angular2-google-maps 自动完成功能不起作用

    我正在尝试使用 angular2 google maps 将自动完成功能添加到我的项目中 我在 AppModule 中添加 AgmCoreModule forRoot 带有库 places 然后在组件中添加自动完成代码 我仍然收到 无法读取
  • 如何在 Android 应用程序中启用谷歌地图导航

    I have two points on google map first one is the source and second is the destination I have the route between these poi
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助

随机推荐

  • 存储库本身通常不经过测试?

    抱歉 我对存储库模式 单元测试和 orm 工具还不熟悉 我一直在研究单元测试和存储库模式 并得出一些结论 我想知道我是否正确 存储库模式有助于在使用它的控制器中替换单元测试 例如 对吧 因为创建上下文 在 EF 中 或会话 在 NH 中 的
  • Jenkins Cron 表达式未在正确的时间安排

    All 尝试配置 jenkins 作业在每天上午 10 点触发并在 cron 下使用H 10 但 jenkins 控制台不是在上午 10 点运行 而是在上午 10 点 09 分运行 请帮助我全年每天上午 10 点跑步 update Afte
  • 如何从模板脚本访问 AngularJS 变量

    我的控制器 scope totals totals 我的模板 按 html 注入的预期工作 totals 但我需要的是访问变量totals在模板的脚本中 如下所示 我试过了 scope totals totals totals 等 均无济于
  • 编译 32 位和 64 位时性能差异巨大(快 26 倍)

    我试图衡量使用的差异for and a foreach访问值类型和引用类型的列表时 我使用以下课程来进行分析 public static class Benchmarker public static void Profile string
  • SELECT FOR XML 查询速度慢吗?

    我有一个存储过程 它使用 SELECT FOR XML PATH 语句将 XML 返回给调用者 随着更多的行被添加到查询中的主表中 我注意到该查询的性能已经下降 经过调查 我发现在没有 FOR XML 语句的 SQL Management
  • 弹性搜索模糊匹配,精确匹配首先显示

    我想在查询中使用模糊匹配 但精确匹配显示在结果的顶部 我已经尝试过以下方法 return this gt client gt search array index gt self INDEX type gt self TYPE body g
  • 按列对 3d 数组中的行数据进行分组,并合并每组中的子数组数据

    我有一个下面提到的数组 array array 0 gt array names gt array 0 gt Apple group gt 1 1 gt array names gt array 0 gt Mango group gt 1
  • 如何将 dput() 的输出加载到对象中?

    例如我有这样的代码 structure list mpg c 21 21 22 8 21 4 18 7 18 1 14 3 24 4 22 8 19 2 17 8 16 4 17 3 15 2 10 4 10 4 14 7 32 4 30
  • 如果两种语言都遵循 IEEE 754,那么两种语言的计算会得到相同的结果吗?

    我正在将程序从 Scilab 代码转换为 C 特别是一个循环产生的结果与原始 Scilab 代码略有不同 这是一段很长的代码 因此我不会将其包含在问题中 但我会尽力总结下面的问题 问题是 循环的每一步都使用上一步的计算 此外 计算之间的差异
  • 哪个 CQL 版本对应哪个 Cassandra 版本?

    CQL 文档是根据 CQL 版本而不是 Cassandra 产品版本来组织的 显然 我想阅读与我正在使用的 Cassandra 版本相对应的 CQL 文档 但我找不到有关哪个 CQL 版本对应于哪个 Cassandra 版本的全面信息 CQ
  • Spark Mongo 连接器,MongoShardedPartitioner 不起作用

    出于测试目的 我配置了一个 4 节点集群 每个节点都有一个 Spark Worker 和一个 MongoDB Shard 这些是详细信息 四台 Debian 9 服务器 名为 Visa0 Visa 1 Visa 2 Visa 4 个节点上的
  • 如何在 OCaml 中使协变可观察

    我正在尝试为值制作一个包装器 允许调用者自行注册以获取有关它的通知 这是一些 工作 代码 module Thing sig type a t val make a gt a t val watch a gt unit gt a t gt u
  • 超时后如何重新建立 JDBC 连接?

    我有一个长时间运行的方法 它通过 EntityManager TopLink Essentials 执行大量本机 SQL 查询 每个查询只需要几毫秒即可运行 但查询数量却有数千个 这发生在单个 EJB 事务内 15 分钟后 数据库关闭连接
  • 如何将 AWS CLI 与 Elastic Beanstalk 结合使用?

    在文档中 它指出 EB CLI 已被 AWS CLI 取代 但所有文档仍在讨论 EB CLI 我已在 Elastic Beanstalk 控制台中创建了一个应用程序 现在准备开始开发 我已经在Ubuntu上安装了所有工具 并且已经在本地进行
  • 编写 LESS 时,chrome 调试器中出现红点?

    我正在将 css 文件转换为 LESS 文件 我的 LESS 只有一部分运行良好 我在 chrome 调试器中看到那些有问题的行有一条奇怪的红点线 知道它们是什么意思吗 http codemirror net doc releases ht
  • Zurb Foundation 5,modernizr 未找到

    我在生产模式下使用 Foundation 5 0 2 0 时遇到此问题 在 Rails Unicorn NginX 和 Ubuntu 上 NetworkError 404 Not Found http mydomain com javasc
  • 当用户存储在外部身份提供商服务中时与用户的关系

    我正在尝试为其创建一个 API 和一个网站客户端 最近 我读了很多关于 OAuth2 作为安全机制的文章 以及提供身份验证服务的公司 例如auth0 com https auth0 com 甚至 Azure Active Directory
  • 在 Android 中向下滚动列表视图时强制关闭

    当我尝试在片段活动中向下滚动列表视图时 出现强制关闭错误 其中有 1 个图像视图和 2 个文本视图 我是android的初学者 所以除了android最常用组件的基本场景之外没有太多的知识 没有位图 OOM 错误 因为我也没有使用图像进行了
  • 了解如何为 .NET 框架创建编译器/解释器的资源

    我想了解更多如何为 NET 框架创建语言 我想我想构建一种 DLR 语言 我很难找到好的资源 我发现MSDN 上的一篇血统文章 http msdn microsoft com en us magazine cc136756 aspx那是一年
  • 是否可以在 Google Maps API v3 上编写自定义文本?

    是否可以在 Google Maps API v3 上的标记旁边写入自定义文本 或者我只能使用信息窗口来执行此操作 要显示自定义文本 您需要创建自定义叠加层 以下是改编自 Google 官方文档的示例 你也可以使用这个图书馆 http cod