如何在初始化期间在Google Maps API上动态设置缩放值

How to dynamically set zoom value on Google Maps API during initialization

本文关键字:动态 设置 缩放 API Google 初始化 Maps      更新时间:2023-09-26

我有如下代码。

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      html, body { height: 100%; margin: 0; padding: 0; }
      #map { height: 100%; }
    </style>
  </head>
  <body>
    <input type="hidden" id="zoom_data" value="8">
    <div id="map"></div>
    <script type="text/javascript">
var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -34.397, lng: 150.644},
    zoom: $('zoom_data').val()
  });
}
    </script>
    <script async defer
      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>
  </body>
</html>

但地图上一片空白。我只想在本地动态设置缩放,而不是从服务器。有什么建议吗?

尝试下面的代码。您需要使用document.getElementById()来获取隐藏字段的值,然后将其转换为数字,然后再将其用作缩放参数。

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      html, body { height: 100%; margin: 0; padding: 0; }
      #map { height: 100%; }
    </style>
  </head>
  <body>
    <input type="hidden" id="zoom_data" value="8">
    <div id="map"></div>
    <script type="text/javascript">
var map;
 function initMap() {
    var zoom = document.getElementById('zoom_data').value;
    var nZoom = Number(zoom);
     map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -34.397, lng: 150.644},
    zoom: nZoom
  });
}
</script>
<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>

希望它能有所帮助!