我目前工作的地方我使用谷歌地圖API來顯示每一個在數據庫中註冊資格公司的標記物的ASP.NET項目。JavaScript的谷歌地圖標記錯誤
一切都運行得很好,但是當我在一個標記單擊工具提示/對話框的上個公司,我公司名單總是顯示了這就是被點擊,而不是actualy公司標誌。
我真的不能讓我周圍爲什麼它總是最後一個標記,顯示了頭。這裏是我的更新代碼:
JavaScript.Text = @"<script type='text/javascript'>
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('map'));
map.setCenter(new GLatLng(56.4, 10.57983), 9);
map.enableScrollWheelZoom();
}
}
</script> ";
foreach (MemberProfile m in relatedMembers)
{
XmlDocument doc = new XmlDocument();
string address = m.Address;
string zip = m.Zip;
string city = m.City;
string navn = m.Name;
string tlf = m.Phone;
doc.Load("http://maps.googleapis.com/maps/api/geocode/xml?address=" + zip + "+" + city + "+" + address + "+DK&sensor=true&key=ABQIAAAAEaY4JLb9fZFGMlDKuMUlWBRSvyGIkBO7X03pzlT7Z30EPXHR8BS0rXL_ShFm2gc79lZTw2Zak88wng");
XmlNode latNode = doc.SelectSingleNode("GeocodeResponse/result/geometry/location/lat/text()");
XmlNode lonNode = doc.SelectSingleNode("GeocodeResponse/result/geometry/location/lng/text()");
if (latNode != null && lonNode != null)
{
JSAddMarkers.Text += @"<script type='text/javascript'>
var marker = new GMarker(new GLatLng(" + latNode.Value + "," + lonNode.Value + ")); "
+ "var html = '<b>" + navn + "</b><br />" + address + "<br /> " + zip + " " + city + "<br />" + tlf + "'; " + "GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });"
+ "map.addOverlay(marker);"
+ "</script>";
}
如果你們在那裏能發現原因所在,我會很高興收到你的來信!任何幫助/提示表示讚賞:-)
一切順利,
博
我猜毛刺是創建地圖對象和添加標記的順序它。您應該先創建地圖對象,然後執行循環以向其添加標記。 – 2010-12-10 11:36:32
嗯,我想你是對的!我將用我的新代碼更新我的第一篇文章,我將該地圖的創建移到了foreach循環的上方。有顯示出來的地圖上雖然沒有標記:/可能會錯過沿路東西.. – bomortensen 2010-12-10 11:58:00
至今還沒有找到一個解決這個:(我試圖重構我的代碼很多,所以它輸出一個片段與所有添加的標記。不過它只能顯示每個點有。任何人的最後一個標誌? – bomortensen 2010-12-10 13:55:39