1

現在Googleの場所を使用してGoogleマップ上にマーカーを表示するJavaScriptがありますが、重複する機能を減らして配列に配置するためにコードをリファクタリングしました。コードをリファクタリングした後、マーカーはもはや表示されません。リファクタリングされたJavaScriptがGoogleマップにマーカを表示していません

ここに私のコードです。

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

var map = [], infoWindow = []; 

function initialize(){ 
    initMap(0, 51.5069999695, -0.142489999533); 
    initMap(1, 40.79445,-74.01558); 
    initMap(2 , 48.858001709, 2.29460000992); 
} 

function initMap(ndx, lat, lng){ 
    var feed = new google.maps.LatLng(lat, lng); 

    map[ndx] = new google.maps.Map(document.getElementById('map'+ndx), { 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: feed, 
     zoom: 11 
    }); 

    var request = { 
     location: feed, 
     radius: 5000 
    }; 

    infoWindow[ndx] = new google.maps.InfoWindow(); 
    var service = new google.maps.places.PlacesService(map); 
    service.search(request, callback); 
} 
function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
      createMarker(0, results[i]); 
      createMarker(1, results[i]); 
      createMarker(2, results[i]); 
     } 
    } 
} 

function createMarker(ndx, place) { = 
    var marker = new google.maps.Marker({ 
     animation: google.maps.Animation.DROP, 
     map: map[ndx], 
     position: place.geometry.location 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infowindow[ndx].setContent(place.name); 
     infowindow[ndx].open(map[ndx], this); 
    });   
} 

google.maps.event.addDomListener(window, 'load', initialize); 

</script> 

<div id="map0" style="position:absolute; width: 290px; height: 300px;"></div> 

<div id="map1" style="position:absolute; left:490px; width: 290px; height: 300px;"></div> 

<div id="map2" style="position:absolute; left:790px; width: 290px; height: 300px;"></div> 

私は問題を見つけようとしましたが、どこにも行きません。 提案がありますか?

+0

する必要があります。if(状態== ...)コールバック()で、役立つかどうかを確認してください。 – mkoistinen

答えて

2

ない

var service = new google.maps.places.PlacesService(map); 

私はGoogleマップDEVについてあまり知らないが、私はコードを削除しようとする

var service = new google.maps.places.PlacesService(map[ndx]); 
関連する問題