JavaScript ошибка маркера карты Google - PullRequest
0 голосов
/ 10 декабря 2010

В настоящее время я работаю над проектом ASP.NET, в котором я использую API Карт Google, чтобы показать маркер для каждой компании, зарегистрированной в базе данных.

Все работает просто отлично, но когда я нажимаю на маркер, всегда появляется всплывающая подсказка / диалоговое окно для последней компании в списке моей компании, а не фактическая отметка компании, на которой была нажата.

Я не могу понять, почему это всегда последний маркер, который появляется. Вот мой обновленный код:

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>";
        }

Если кто-нибудь из вас сможет найти причину, почему, я был бы рад услышать от вас! Любая помощь / подсказка приветствуется: -)

Всего наилучшего,

Бо

1 Ответ

0 голосов
/ 10 декабря 2010

попробуйте

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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...