📜  废弃谷歌地图的左窗格 (1)

📅  最后修改于: 2023-12-03 15:39:28.850000             🧑  作者: Mango

废弃谷歌地图的左窗格

谷歌地图在过去的几年中一直为外出旅行者等提供最好的服务,但是,它最近废弃了它的左窗格。左窗格是一个显示附近地点、路况和实时交通等功能的面板,这对于地图消费者来说是非常重要的。

尽管左窗格已经被废弃,但是作为一名程序员,您可以使用一些代码来重建这个面板。

实现

您可以使用谷歌地图API来重建左窗格功能。通过使用JavaScript,您可以自定义左窗格,并添加您自己的功能。

下面是您可以使用的示例代码:

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
  <meta charset="utf-8">
  <title>Custom Controls</title>
  <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;
    }
    #pano {
      width: 200px;
      height: 200px;
    }
  </style>
</head>
<body>
  <div id="map"></div>
  <script>

    // This example demonstrates how to add a custom control to the Street View
    // panorama. When the control is clicked, the map markers are toggled on or
    // off.

    var map;
    var panorama;

    function initMap() {
      // Set up the map.
      var mapDiv = document.getElementById('map');
      map = new google.maps.Map(mapDiv, {
        center: {lat: 42.345573, lng: -71.098326},
        zoom: 14
      });

      // Set up the street view panorama.
      var panoramaDiv = document.getElementById('pano');
      panorama = new google.maps.StreetViewPanorama(
          panoramaDiv, {
            position: {lat: 42.345573, lng: -71.098326},
            pov: {
              heading: 34,
              pitch: 10
            },
            visible: true
          });

      // Add a toggle control to the Street View panorama.
      var toggle = document.createElement('div');
      toggle.style.width = '100px';
      toggle.style.height = '40px';
      toggle.style.background = 'white';
      toggle.style.textAlign = 'center';
      toggle.style.paddingTop = '10px';
      toggle.style.cursor = 'pointer';
      toggle.innerHTML = 'Marker Toggle';
      panorama.controls[google.maps.ControlPosition.TOP_CENTER].push(toggle);

      // Listen for the toggle and hide/show the markers accordingly.
      toggle.addEventListener('click', function() {
        markers.forEach(function(marker) {
          marker.setMap(marker.getMap() ? null : map);
        });
      });

      // Set up the markers.
      var markers = [
        new google.maps.Marker({
          position: {lat: 42.345573, lng: -71.098326},
          map: map,
          title: 'Marker 1'
        }),
        new google.maps.Marker({
          position: {lat: 42.347347, lng: -71.080983},
          map: map,
          title: 'Marker 2'
        }),
        new google.maps.Marker({
          position: {lat: 42.366665, lng: -71.062292},
          map: map,
          title: 'Marker 3'
        }),
        new google.maps.Marker({
          position: {lat: 42.385898, lng: -71.072834},
          map: map,
          title: 'Marker 4'
        })
      ];
    }

  </script>
  <script async defer
      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
  </script>
</body>
</html>

您可以自由地更改代码以定制您想要的效果。您还可以将代码添加到现有的项目中或创建新的项目。

总结

虽然谷歌地图废弃了左窗格功能,但是,这不会阻止您打造自己的地图应用程序。使用JavaScript和谷歌地图API,您可以重建左窗格,并添加自己的功能。