0

エラーを探しましたが、見つかりませんでした。すべてのグーグルマップinfoWindowは、何らかの理由で常に同じ情報を表示します。

これがコーヒースクリプトコードです

infowindow = new google.maps.InfoWindow()
for company in companiesData
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(company.latitude, company.longitude)
    map: map
  })

  #debugger ---> each company.name is different!
  google.maps.event.addListener(marker, 'click', ()->
    infowindow.setContent(company.name)
    infowindow.open(map,this)
  )

デバッグしたところ、company.nameがそれぞれ異なることがわかりました。

出力JavaScript

  infowindow = new google.maps.InfoWindow();
  _results = [];
  for (_j = 0, _len1 = companiesData.length; _j < _len1; _j++) {
    company = companiesData[_j];
    marker = new google.maps.Marker({
      position: new google.maps.LatLng(company.latitude, company.longitude),
      map: map
    });
    _results.push(google.maps.event.addListener(marker, 'click', function() {
      infowindow.setContent( company.name);
      return infowindow.open(map, this);
    }));
  }
  return _results;
});

では、エラーはどこにありますか?

4

2 に答える 2

3

変動会社の閉鎖を取得する必要があります。別の関数でマーカーを作成することで、これを行うことができます。例えば:

infowindow = new google.maps.InfoWindow()
for(var n = 0 ; n < n companiesData.length ;n++){
  createMarker(companiesData[n]);
}

function createMarker(data){
  var marker = new google.maps.Marker({
    position: new google.maps.LatLng(parseFloat(data.latitude), parseFloat(data.longitude)),
    map: map
  })

  #debugger ---> each company.name is different!
  google.maps.event.addListener(marker, 'click', function(){
    infowindow.setContent(data.name);
    infowindow.open(map,this);
  }
  )
}

ここで説明します。

于 2012-08-23T08:22:06.993 に答える
1

私も同じでした...別の関数でマーカーを作成してみてください。それは私にとって助けになりました。

それをチェックしてください: https ://developers.google.com/maps/articles/phpsqlsearch_v3

「searchLocationsNear(center)」関数を使用してコードを検索します。

于 2012-08-23T08:26:56.063 に答える