Google Maps API - 地图上方的文字

时间:2016-07-24 19:20:59

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

问题:是否可以使用Google Maps API创建文本,即使在放大/缩小或平移时,也会在固定位置悬停在窗口上?

我做了多少尝试: 我已经知道infowindows可以使用以下代码:

var contentString = "<div>Hello!</div>";
var infowindow = new google.maps.InfoWindow({
          content: contentString
});
marker.addListener('click', function() {
          infowindow.open(map, marker);
});

但是之前的信息窗口需要一个标记,据我所知,标记只能在地图上有固定位置(我无法找到如何将标记放在屏幕中央并保持不变它甚至在用户移动地图时也是如此)

有谁知道将文字放在地图中间的方法?它可以是信息窗口或其他方法。

2 个答案:

答案 0 :(得分:0)

如果您想使用InfoWindow,只需为标记设置visible: false,然后在地图中心位置发生变化时更改标记的位置:

/* Invisible marker for the InfoWindow */
textmarker = new google.maps.Marker({
    position: map.getCenter(),
    map: map,
    visible: false
});

/* Center change handler to always center the marker */
map.addListener('center_changed', function() {
    textmarker.setPosition(map.getCenter());
});

/* adding the info window */
var infowindow = new google.maps.InfoWindow({
    content: "Your Text can be placed here"
    });
infowindow.open(map, textmarker);

工作小提琴:https://jsfiddle.net/7rtsv2y4/

答案 1 :(得分:-2)

假设文本位于静态位置的地图上方,您可以使用CSS执行此操作:

<div class="map-container">
 <-- google map div here -->
 <div class="textbox">Static Text</div>
</div>

CSS:

.map-container {
  position: relative;
}

.textbox {
  position: absolute;
  left: 50%:
  top: 50%;
  transform: translateX(-50%);
  transform: translateY(-50%);
  z-index: 1000;
}