1

を使用してマーカーを削除すると、marker.setMap(null)ズームアウトして Google マップがマーカーを削除するまで表示されたままになります。

Windows 上の Chrome と同じ HTML ページで削除された後、マーカーは表示されません。

マーカーが削除された後、マップが適切に更新されていないようです。

問題のあるコード (マーカーは 5 秒後に消えるはずです):

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <script type="text/javascript" charset="utf-8" src="cordova-2.1.0.js"></script>
    <script type="text/javascript" charset="utf-8" src="jquery-1.8.2.min.js"></script>
    <style type="text/css">
      * {
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
          }
      html { height: 100%; }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAQ7L1PL7pQzSuDfv9kTL_qE4Cp0wy8Oo8&sensor=true">
    </script>
    <script type="text/javascript">
      var theMap = null;
      function initialize() {
        var mapOptions = {
          zoom: 10,
          center: new google.maps.LatLng(37.7749295, -122.4194155),
          disableDefaultUI: true,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        theMap = new google.maps.Map(document.getElementById('map_canvas'),
                                      mapOptions);
        navigator.geolocation.getCurrentPosition(
          function (position) {
            // successfully load position
            var lat = position.coords.latitude;
            var long = position.coords.longitude;
            theMap.setCenter(new google.maps.LatLng(lat, long), 21);
          },
          function (fail) {
                console.error("Failed to load GPS coordinates");
          }
        );
        var marker;
        function addMarker(itemid, lat, lon) {
                marker = new google.maps.Marker({
                        position: new google.maps.LatLng(lat, lon),
                        map: theMap
                });
        }
        addMarker('pokemon', 37.42841, -122.16960);
        setTimeout(function() {marker.setMap(null);}, 5000);
      }


    </script>
  </head>
  <body onload="initialize();">
    <div id="map_canvas" style="width:100%; height:100%; top:0px; z-index: 10"/>
  </body>
</html>
4

1 に答える 1

3

これは同じ問題だと思います: PhoneGap の Google Maps API v3: 移動後にマーカーが正しく描画されない

最適化された: false プロパティをマーカーに設定してみてください:

new google.maps.Marker({
    map: map,
    optimized: false, 
    clickable: true
});

これで直るはずです!

于 2012-11-22T15:01:56.260 に答える