Avatar billede bamzen Nybegynder
06. januar 2015 - 05:34 Der er 3 kommentarer

Problem med Jquery Google maps UI v3

Hej,

Jeg loader en liste af elementer via xml - et entry kunne se således ud...

<markers><marker name="Jysk Model Jernbane Klub" lat="56.1460465" lng="10.202726" nyemedlemmer="T" region="4" id="58" guestok="T" type="bar"><anlaeg skala="0 - 1:45" anlaegstype="Fast" system="Digital - DCC" skinnetype="2-Skinne" m2="250"/></marker><marker name="N-Modulgruppen" lat="55.7411113" lng="12.4908475" nyemedlemmer="T" region="1" id="57" guestok="F" type="bar"><anlaeg skala="N - 1:160" anlaegstype="Modulbaseret" system="Digital - DCC" skinnetype="2-Skinne" m2="30"/></marker><marker name="Modeljernbaneklubben Limfjorden" lat="57.0384773" lng="9.8889001" nyemedlemmer="T" region="5" id="55" guestok="F" type="bar"><anlaeg skala="H0 - 1:87" anlaegstype="Fast" system="Digital - DCC" skinnetype="3-Skinne" m2="100"/></marker></markers>

Jeg loader det så via

$(function() {
    $('#map_canvas').gmap().bind('init', function() {    
      var nm;
      $.ajax({
            type: "GET" ,
            url: "../mapxml.php" ,
            dataType: "xml" ,
            success: function(xml) {
                markers = xml.documentElement.getElementsByTagName("marker");                     
                for (var i = 0; i < markers.length; i++)
                {
                    var self = this;
                    $('#map_canvas').gmap('addMarker', {
                        'position': new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), markers[i].getAttribute("lng")),
                        'bounds': true,
                        'title': markers[i].getAttribute("name"),
                        'clubname': markers[i].getAttribute("name"),
                    }).click(function() {
                        alert(i)
                    //    self.openInfoWindow({ 'content': "<b>"+markers[i].getAttribute("name")+"<\/b><p>"+markers[i].getAttribute("address")+" "+markers[i].getAttribute("category") }, this);
                    });           
                }
            }
        });
    });
});


Kortet loader fint nok, men jeg vil så gerne have vist en infobox med info når man klikker på den enkelte markering på kortet.

Det kan jeg ikke få den til....

Helt optimalt så sammenligner den longitude/latitude, så hvis der er flere på samme placering bliver infowindow lidt større så der kan stå info om alle relevante., eventuelt med scrollbar om nødvendigt i infowindow..

Håber opgaven er beskrevet tilstrækkeligt....
Avatar billede keysersoze Guru
06. januar 2015 - 15:18 #1
Hvad sker der/sker der ikke eller hvad sker der af fejl?
Avatar billede bamzen Nybegynder
06. januar 2015 - 15:31 #2
når den når dertil at den skal lave de forskellige infowindows, ,så er markers[i] ikke noget objekt længere...

siger den...
Avatar billede keysersoze Guru
06. januar 2015 - 17:07 #3
Generelt burde du også kunne få noget performance ud af ikke at slå op i dit array hver gang - så måske det løses ved at du først i din løkke laver en ny variabel du benytter fremadrettet;

var marker = markers[i];
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester