在地图中获取DOM元素google div

时间:2017-02-07 11:43:39

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

初始化Google地图时,可以从“childDiv”ID获取模板文字吗?我的代码如下所示:

function initialize() {
  var latlng = new google.maps.LatLng(-34.397, 150.644);
  var myOptions = {
    zoom: 8,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("map"),
    myOptions);
}
google.maps.event.addDomListener(window, "load", initialize());
#map {
  height: 450px;
  width: 450px;
}
<script src="https://maps.googleapis.com/maps/api/js"></script>

<div id="map">
  <div id="childDiv">testes</div>
</div>

在初始化map函数后调试此代码时,我的childDiv就消失了。

Jsfiddle:https://jsfiddle.net/ce4bpzhh/

1 个答案:

答案 0 :(得分:1)

这是谷歌地图的默认工作方式。它将覆盖您为其指定的div的内容。

但是,有一个选项可以告诉它保留现有内容。

选项为noClear,您必须将其设置为true

关于mapOptions

的Google地图文档
  

noClear - 输入:boolean
  如果true,请不要清除Map div的内容。

工作示例

function initialize() {
  var latlng = new google.maps.LatLng(-34.397, 150.644);
  var myOptions = {
    zoom: 8,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    noClear:true // ADD THIS OPTION
  };
  var map = new google.maps.Map(document.getElementById("map"),
    myOptions);
}
google.maps.event.addDomListener(window, "load", initialize());
#map {
  height: 450px;
  width: 450px;
}
<script src="https://maps.googleapis.com/maps/api/js"></script>

<div id="map">
  <div id="childDiv">testes</div>
</div>