【问题标题】:Text Labels on Google Maps v3 showing as text under markerGoogle Maps v3 上的文本标签在标记下显示为文本
【发布时间】:2016-11-22 14:25:36
【问题描述】:

我在 Google 地图上使用 v3,并且我的网站没有任何代码更改。今天我看到,功能可能被谷歌改变了,或者什么。

我正在使用这样的东西:

var m = new google.maps.Marker({
    position: new google.maps.LatLng(b[0], b[1]),
    map: map,
    icon: img,
    label: " <strong>" + b[4] + "</strong><br />Autor: <strong>" + b[5] + "</strong><br />Dĺžka: <strong>" + b[6].replace('.', ',') + " km</strong>"
});

看起来像:

当我将鼠标悬停在标记上时,它就像:

这没关系,但在这两种情况下,还显示了来自 marker.label 的文本,而几天前还没有这样显示。当标记悬停时,它与气泡中显示的文本相同。

当我在 SO 上搜索一个小时时,我也尝试将 marker.label 更改为对象:

var m = new google.maps.Marker({
    position: new google.maps.LatLng(b[0], b[1]),
    map: map,
    icon: img,
    label: { text: " <strong>" + b[4] + "</strong><br />Autor: <strong>" + b[5] + "</strong><br />Dĺžka: <strong>" + b[6].replace('.', ',') + " km</strong>" }
});

但地图上的文字仍然显示,然后在气泡中只显示[object Object]

问题

有谁知道这可能是什么问题,或者谷歌在他们的 v3 API 中改变了什么?

无法将这么大的代码粘贴到 JSFiddle 中,希望您理解。网址是www.cyklomapy.sk

非常感谢遇到类似问题的任何人的帮助。

【问题讨论】:

  • 我的问题不是关于,为什么我的代码不能工作...关于,它不能在所有使用谷歌地图 API v3 的网站上工作!
  • 请提供证明问题的minimal reproducible example,而不是(仅)指向损坏网站的链接。

标签: javascript google-maps google-maps-api-3 google-maps-markers


【解决方案1】:

修改了 Google Maps Javascript API v3 以删除对标记标签的限制(过去只允许一个字符)。

【讨论】:

  • 然后如何在标记上不显示文字,只在气泡中显示文字?
  • 我的建议是不要在标记的标签字段中放置一个以上的字符(当然也不要放置 HTML)。您问题中的代码不包含显示“气泡”的代码,我不会搜索您的页面以找到它,但我的猜测是您在那里错误地使用了 label 属性,而且它只是由于限制,以前工作过。
  • 气泡中显示的文本是来自标签的文本。这不是在谷歌改变它之前。现在,文本也显示在气泡中,也显示在标签中。我不想在标签中显示任何文本,只在气泡中显示。所以直到今天(或几天前)它已经工作了 2 年。正如我在 SO 上多次搜索的那样,它也是这样工作的,而且您也可以使用 HTML,然后您将在气泡中获得格式化文本。谷歌改变了它,而不是我......
  • 问题 8578 是一项增强请求,旨在将标记标签中可用的字符数从 1 增加到一个以上。谷歌解决了这个问题。我的看法是你错误地使用了标记的标签字段(因为它总是在标记上放置一个标签,你只是碰巧将第一个字符设置为空白)。
  • 是的,没错,第一个字符是空白的,但在气泡中它显示了标签中格式化的 HTML 代码。现在标签中有整个文本,气泡中没有 HTML 代码。我的问题是,如何将格式化的 HTML 文本添加到气泡中,而不是标签中。
猜你喜欢
  • 2013-12-06
  • 1970-01-01
  • 2012-04-12
  • 2011-08-01
  • 2012-06-18
  • 2017-11-29
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多