2

在这个 google 地图示例中:http
://code.google.com/apis/maps/documentation/javascript/examples/streetview-simple.html 例如,如果用户将小家伙丢在很远的海中央,它消失。
但是在主要的谷歌地图网站http://maps.google.com/如果你让它显示街景,并且用户将那个人拖走,它会自动回到前一点。

第一个示例中遗漏了什么使其行为与谷歌地图网站相同?

这是示例的代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example: Street View Layer</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/standard.css" rel="stylesheet" type="text/css" />
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script type="text/javascript">

  function initialize() {
    var fenway = new google.maps.LatLng(42.345573,-71.098326);
    var mapOptions = {
      center: fenway,
      zoom: 14,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(
        document.getElementById("map_canvas"), mapOptions);
    var panoramaOptions = {
      position: fenway,
      pov: {
        heading: 34,
        pitch: 10,
        zoom: 1
      }
    };
    var panorama = new  google.maps.StreetViewPanorama(document.getElementById("pano"),panoramaOptions);
    map.setStreetView(panorama);
  }
</script>
</head>
<body onload="initialize()">
  <div id="map_canvas" style="width: 400px; height: 300px"></div>
  <div id="pano" style="position:absolute; left:410px; top: 8px; width: 400px; height: 300px;"></div>
</body>
</html>
4

1 回答 1

1

为此,请将事件侦听器添加到 position_changed 并使用它来存储街景小人被丢弃的最后(有效)位置。

google.maps.event.addListener(panorama, 'position_changed', function() {
  // Store position
});

然后为 visibility_changed 添加一个事件监听器(当街景小人掉入海中时触发)以将他设置回最后一个已知位置:

google.maps.event.addListener(panorama, 'visible_changed', function() {
  if (panorama.getVisible() == false && last_location) {
    panorama.setPosition(last_location);
  }
});
于 2010-12-20T00:35:12.587 回答