8

説明するのはちょっと難しいので、私は問題のスクリーンショットをアップロードしました: ここに画像の説明を入力してください

ご覧のとおり、地図上のdiv不動産(これは実際のサイズです)にもかかわらず、地図の1/6しか表示されません!この小さなウィジェットはサイズを変更できますが、サイズが変更されている場合でもサイズが変更されます。私は何か間違ったことをしていると確信していますが、それを理解することはできません。マップを含むdivのCSSコードは次のとおりです。

#map {
border-right-color: black;
border-left-color: black;
border-right-width: 1px;
border-left-width: 1px;
position: absolute;
margin-top: 0px;
top: 38px;
left: 0px;
width: auto;
height: auto;
right: 0px;
bottom: 10px;
background-color: rgb(204, 204, 204);
border-bottom-style: solid;
border-top-style: solid;
border-bottom-width: 1px;
border-top-width: 1px;
border-bottom-color: rgb(204, 204, 204);
border-top-color: rgb(204, 204, 204);
overflow: hidden;
}

マップを作成しているJavaScriptは次のとおりです。

 //google maps apis
 var marker;
 var setLocation =  new google.maps.LatLng(59.32522, 18.07002);

 var marker;

 function placeMarker(location) {
   if ( marker ) {
     marker.setPosition(location);
   } else {
     marker = new google.maps.Marker({
  position: location,
  map: map,
  draggable: true
     });
   }
 }

  function searchGoogleMaps(event) { 
var address =event.target.value;
geocoder.geocode( { 'address': address}, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);

        placeMarker(results[0].geometry.location)


  } else {
    alert("Geocode was not successful for the following reason: " + status);
  }
     });
   }  


  var geocoder;
   var map;
   function initialize() {
     geocoder = new google.maps.Geocoder();
     var latlng = new google.maps.LatLng(-34.397, 150.644);
     var myOptions = {
  zoom: 2,
  center: latlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
   }


   function toggleBounce() {

if (marker.getAnimation() != null) {
  marker.setAnimation(null);
} else {
  marker.setAnimation(google.maps.Animation.BOUNCE);
}
   }

そして最後に、これをすべて実現するために呼び出されているjavascriptファイル:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&amp;sensor=false"></script>

特にこのような長い質問を読むために時間を割いてくれてありがとう!

4

1 に答える 1

12

map'' 'divのサイズが変更されるたびresizeに、Googleマップコンポーネントで''イベントを明示的にトリガーする必要があります。

開発者は、divのサイズが変更されたときにマップ上でこのイベントをトリガーする必要があります:google.maps.event.trigger(map、'resize')。

https://developers.google.com/maps/documentation/javascript/reference#Map

于 2012-04-04T07:30:49.777 に答える