使用 chrome 时如何在谷歌地图上制作多行标签?

Posted

技术标签:

【中文标题】使用 chrome 时如何在谷歌地图上制作多行标签?【英文标题】:How can I make multi line label on google maps when using chrome? 【发布时间】:2019-07-18 03:48:51 【问题描述】:

我正在制作一个系统,用文本(状态、价格、公寓所有者)显示标记。 我已经使用标签文本在 IE 上对其进行了测试。 它曾经与 /n 一起正常工作以换行。 但是当我更改为 chrome 浏览器时,标签文本的 /n 根本不起作用......我希望这个标签文本是多行的。 有人有想法吗?

我想打印 3 行 aaaaaaa bbbb cccc 的标签

但这不起作用:

var marker2 = new google.maps.Marker(
  title:"A\nBa", 
  position: 
    lat: 12.975688, 
    lng: 77.640812
  , 
  label: 
    text:"aaaaaaa \n bbbb \n cccc"
  , 
  icon:  
    path: google.maps.SymbolPath.CIRCLE, 
    fillColor: "green", 
    strokeColor: "green", 
    fillOpacity: 1.0, 
    scale: 20
  , 
  map: map
); 

【问题讨论】:

你必须使用 html 而不是 \n 【参考方案1】:

一种选择是使用第三方MarkerWithLabel 实用程序库。这支持在其labelContent 字段中的 HTML 标记(以及labelContent 的 CSS 样式)

var marker = new MarkerWithLabel(
  position: bangalore,
  labelContent: "A<br/>B",
  labelAnchor: new google.maps.Point(2, 12),
  icon: 
    path: google.maps.SymbolPath.CIRCLE,
    fillColor: "red",
    strokeColor: "red",
    fillOpacity: 1.0,
    scale: 20
  ,
  map: map
);

proof of concept fiddle

代码 sn-p:

function initialize() 
  var bangalore = 
    lat: 12.97,
    lng: 77.59
  ;
  var map = new google.maps.Map(document.getElementById('map'), 
    zoom: 12,
    center: bangalore
  );
  var marker = new MarkerWithLabel(
    position: bangalore,
    labelContent: "aaaaaaa <br/> bbbb <br/> cccc",
    labelAnchor: new google.maps.Point(20, 20),
    labelStyle: 
      textAlign: "center"
    ,
    icon: 
      path: google.maps.SymbolPath.CIRCLE,
      fillColor: "red",
      strokeColor: "red",
      fillOpacity: 1.0,
      scale: 20
    ,
    map: map
  )

google.maps.event.addDomListener(window, 'load', initialize);
html,
body,
#map 
  height: 100%;
  margin: 0;
  padding: 0;
<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<script src="https://cdn.jsdelivr.net/gh/geocodezip/v3-utility-library/packages/markerwithlabel/src/markerwithlabel.js"></script>

【讨论】:

链接好像坏了 Google 一直在移动这些库。将答案更改为在 geocodezip github 帐户中使用分叉。

以上是关于使用 chrome 时如何在谷歌地图上制作多行标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌地图中制作多个圆圈颤动[关闭]

有没有可能在谷歌地图上制作工具栏?

如何在谷歌地图上快速更改我的位置按钮的位置

单击标记时,新按钮会自动出现在谷歌地图(Android)上?如何删除?

谷歌地图吃豆人[关闭]

在谷歌地图中隐藏纬度和经度