谷歌地图为何一片灰色?

<!DOCTYPE html>
<html>
<head>

<title>Showing pixel and tile coordinates</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
  /* Always set the map height explicitly to define the size of the div
   * element that contains the map. */
  #map {
    height: 100%;
  }
  /* Optional: Makes the sample page fill the window. */
  html, body {
    height: 100%;
    margin: 0;
    padding: 0;
  }
</style>

</head>
<body>

<div id="map"></div>
<script>
  function initMap() {
    var chicago = new google.maps.LatLng(120.61752, 31.248331);

    var map = new google.maps.Map(document.getElementById('map'), {
      center: chicago,
      zoom: 7
    });

    var coordInfoWindow = new google.maps.InfoWindow();
    coordInfoWindow.setContent(createInfoWindowContent(chicago, map.getZoom()));
    coordInfoWindow.setPosition(chicago);
    coordInfoWindow.open(map);

    map.addListener('zoom_changed', function() {
      coordInfoWindow.setContent(createInfoWindowContent(chicago, map.getZoom()));
      coordInfoWindow.open(map);
    });
  }

  var TILE_SIZE = 256;

  function createInfoWindowContent(latLng, zoom) {
    var scale = 1 << zoom;

    var worldCoordinate = project(latLng);

    var pixelCoordinate = new google.maps.Point(
        Math.floor(worldCoordinate.x * scale),
        Math.floor(worldCoordinate.y * scale));

    var tileCoordinate = new google.maps.Point(
        Math.floor(worldCoordinate.x * scale / TILE_SIZE),
        Math.floor(worldCoordinate.y * scale / TILE_SIZE));

    return [
      'JiangYin KangHua',
      'Tel: ' + "400-888-8888",
      'E-mail: ' + 'website@qq.com',
      'Address: ' + 'jiangyinxxxxxxxxxx',
    ].join('<br>');
  }

  // The mapping between latitude, longitude and pixels is defined by the web
  // mercator projection.
  function project(latLng) {
    var siny = Math.sin(latLng.lat() * Math.PI / 180);

    // Truncating to 0.9999 effectively limits latitude to 89.189. This is
    // about a third of a tile past the edge of the world tile.
    siny = Math.min(Math.max(siny, -0.9999), 0.9999);

    return new google.maps.Point(
        TILE_SIZE * (0.5 + latLng.lng() / 360),
        TILE_SIZE * (0.5 - Math.log((1 + siny) / (1 - siny)) / (4 * Math.PI)));
  }
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=xxxxxxxxx&callback=initMap">
</script>

</body>
</html>

阅读 6.3k
1 个回答

Google Maps API warning: InvalidKey

你这代码应该是复制别人的,需要申请google map api key

<script async defer
src="https://maps.googleapis.com/maps/api/js?key=xxxxxxxxx&callback=initMap">
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进