C#コードを介して多くのポイント(マーカー)を追加するGmapコントロールがあります。マーカーを追加した直後に、すべてのマーカーに GListener を追加します。
現在、Web ページにいくつかのボタンがあり、ユーザーがそのうちの 1 つをクリックすると、マップが更新されて相対マーカーのみが表示されます。ユーザーが最初のボタンをクリックするとすべてが正常に機能しますが、ユーザーが他のボタンをクリックすると、Glistener は機能しませんが、マーカーはそれに応じて変化します。
これは、マーカーとリスナーを追加するコードです。
marker = new GMarker(new GLatLng(lat, lng), new GIcon(Gicon));
clicklistener = new GListener(marker.ID, GListener.Event.click, string.Format(@"function(){{var w=new google.maps.InfoWindow();w.setContent('<center><b>{0}</b></center></br><center>{3}</center></br><center>{4}</center></br><center>{5}</center></br><center>{6}</center>');w.open({1}, {2});}}", SName + " , " + FacType, GMap1.GMap_Id, marker.ID, "Printer Status: " + PrinterStatus.ToString() + ", Battery: " + Sbat + "V Signal: " + SSignal + "%", "Scanner Status: " + ScannerStatus.ToString(), "SMS Received: " + Sreceived + " , SMS Sent: " + Ssent, "Last SMS Date: " + SsmsDate.ToString() + " , Last Comms Date: " + ScommsDate.ToString()));
Marker と clicklistener はグローバルに定義されており、 gmap1.add(marker) と gmap1.add(clicklistener) を介してマップに追加されます。
よろしくパトリック