c#
  • javascript
  • asp.net
  • google-maps
  • 2010-12-10 91 views 0 likes 
    0

    我目前工作的地方我使用谷歌地圖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>"; 
         } 
    

    如果你們在那裏能發現原因所在,我會很高興收到你的來信!任何幫助/提示表示讚賞:-)

    一切順利,

    +0

    我猜毛刺是創建地圖對象和添加標記的順序它。您應該先創建地圖對象,然後執行循環以向其添加標記。 – 2010-12-10 11:36:32

    +0

    嗯,我想你是對的!我將用我的新代碼更新我的第一篇文章,我將該地圖的創建移到了foreach循環的上方。有顯示出來的地圖上雖然沒有標記:/可能會錯過沿路東西.. – bomortensen 2010-12-10 11:58:00

    +0

    至今還沒有找到一個解決這個:(我試圖重構我的代碼很多,所以它輸出一個片段與所有添加的標記。不過它只能顯示每個點有。任何人的最後一個標誌? – bomortensen 2010-12-10 13:55:39

    回答

    0

    試試這個

    var point =new GLatLng(" + latNode.Value + "," + lonNode.Value + "); 
    var marker = createMarker(point, address,zip,city,navn); 
    map.addOverlay(marker); 
    
    
    
    function createMarker(point, address, zip,city, navn) { 
         var marker = new GMarker(point, customIcons[type]); 
         var html = "Address:<b style='padding-left:6px'>" + address+ "</b><br/>zip:<b style='padding-left:6px'>"+ zip+ "</b><br/>city:<b style='padding-left:6px'>"+ city+ "</b>"; 
         GEvent.addListener(marker, 'mouseover', function() { 
         marker.openInfoWindowHtml(html); 
         }); 
         GEvent.addListener(marker, "mouseout", function() { 
           marker.closeInfoWindow(); 
        }); 
         return marker; 
        } 
    
    +0

    嗨巴努•,那肯定也有辦法做到這一點。但是,因爲我用JavaScript忍者編碼在C#代碼隱藏好像我的工作有一點麻煩,讓你的代碼工作:/從來沒有真正與JavaScript在代碼隱藏之前,所以忍受我.. – bomortensen 2010-12-10 12:00:36

    相關問題