0

Googleマップの実装に次の問題があります。すべてのレストランを 1 つのマップに表示するのではなく、レストランごとに個別のマップを表示するリストがあります。別のdivを作成します:

<div class="googleMap" id="googleMap<?php echo $row[0];?>" style="width:500px;height:380px;position:absolute;"></div>    

独自のIDを取得します。私が持っているより:

<a class="show_map" id="',$row[0],'" href="#" style="font-size:12px;color:red;margin-top:-3px;">restourants on the map</a>    

IDとGoogleマップの関数でdivを表示/非表示にします:

function initialize(){    
var restaurant= <?php echo json_encode($r[11]); ?>;    
//alert(hotel);    
var mapProp = {    
center:myCenter,    
zoom:16,    
mapTypeId:google.maps.MapTypeId.ROADMAP    
};    
var map=new google.maps.Map(document.getElementById("googleMap" + restaurant),mapProp);       
var marker=new google.maps.Marker({    
position:myCenter,    
});    
marker.setMap(map);    
var infowindow = new google.maps.InfoWindow({    
content:"Hello World!"    
});    
infowindow.open(map,marker);   
}    
google.maps.event.addDomListener(window, 'load', initialize);    

結局、最初のプロパティの同じマップしか表示されません。これは、関数がすべてのマップで同じであるためだと思いますか?? 私はjsを初めて使用し、現在2日間スタックしています。レストランごとに別々の地図を作成する方法を教えてください。

少なくとも、各プロパティの個々の地図を表示しない理由を教えていただければ.. よろしくお願いします

4

1 に答える 1

1

のように簡単に表示されます。:

<div id="map1"></div>

<br>
<br>
<br>
<br>
<br>

<div id="map2"></div>

***しかし、マップごとに 2 つの別個の JavaScript 関数を実行していることを確認する必要があります。私が見る限り、同じ変数名を持つ両方のマップに同じコードを再利用しており、基本的に最初のマップを上書きしています。

したがって、初期化関数内で。:

var map1;
var map2;

function initialize(){   
  map1 = new GMap2(document.getElementById("map1"));
  map1.setCenter(new GLatLng(37.4419, -122.1419), 13);

  map2 = new GMap2(document.getElementById("map2"));
  map2.setCenter(new GLatLng(38.88, -100.22), 13);
}
于 2013-09-18T23:01:58.537 に答える