Oprettet tor. d. 26. november 2009 kl. 18:48:11

elmoe
elmoe (17.545 point. Point ude: 180)
www.fedevideoer.dk

JavaScript, Google map identificer markere

Hej eksperter.

Jeg er ved at udvikle en Google Maps JavaScript applikation. Jeg har vha. JavaScript genereret et kort hvor jeg har centreret viewet til at vise hele Danmark. Jeg har gemt adressedata i et array (addressArray). Arrayet bliver brugt til at finde ud af hvor hver enkelt adresse skal placeres på kortet. Dette virker fint. Jeg er også i stand til at vise en tekst ud for hver enkelt marker på kortet, når der klikkes på en den.

Nu til problemet.
Når brugeren klikker på en bestemt marker, vil jeg gerne vise præcis hvad det er for en adresse. Jeg kan godt få hver enkelt tekst frem. De bliver bare ikke plaveret de rigtige steder. I eksemplet herunder bliver en adresse i Kolding f.eks. placeret på en marker som er placeret i Odense osv.

Hvordan får jeg nedenstående kode rettet, så jeg kan vise hver adresse fra arrayet ved den rigtige marker?

Linien "map.openInfoWindow(marker.getLatLng(), addressArray[i - 1]);" viser ikke adressen ved den marker den skal fordi jeg bruger variablen "i" som er den der tæller en op sammen med mit loop. Hvis jeg i stedet vidste hvordan jeg kunne sørge for det var den rigtige marker der fik teksten.

Hvordan kan jeg ændre koden, så den gør det?

function displayTypemap(addressArray)
{
    //Initialize the map
    initialize();
   
    var gmarkers = [];
   
    if (addressArray.length == 0)
    {
        //alert("No data.");
    }
    else
    {
        if (geocoder)
        {
            for (i = 0; i <= addressArray.length - 1; i++)
            {
                geocoder.getLatLng(addressArray[i], function(latlng)
                {
                    if (!latlng)
                    {
                        alert(addressArray[i] + " not found");
                    }
                    else
                    {
                        //Make new marker object
                        var marker = new GMarker(latlng);
                       
                        //Add marker object to map
                        map.addOverlay(marker);
                       
                        //Make a marker listener
                        GEvent.addListener(marker, "click", function(overlay, latlng)
                        {
                            //Create a textnode when user clicks on a marker
                            map.openInfoWindow(marker.getLatLng(), addressArray[i - 1]);
                        });
                    }
                } );
            }
        }
    }
}

Skrevet tor. d. 26. november 2009 kl. 23:26:45| #1

elmoe
elmoe (17.545 point)
www.fedevideoer.dk
Det kan måske være en idé at gå ind på Google playground og klikke på "Maps API" for at se eksempler på Google Maps kode:
http://code.google.com/ (...)

Jeg kan desværre ikke finde ud af, hvad det er jeg skal rette i min kode for at få vist den rigtige adressetekst når der klikkes på en af mine markers. Håber at én af jer eksperter kan?

Skrevet tor. d. 26. november 2009 kl. 23:44:26| #2

elmoe
elmoe (17.545 point)
www.fedevideoer.dk
Tjek evt. dette screenshot af mit kort for at forstå hvad der er galt:

http://www.limer.dk/adresse_placeret_ved_forkert_marker.jpg

Som I kan se står der Rønne når jeg klikker på den marker, hvor der burde stå Århus. Der bliver altså ikke vist den rigtige tekst når der klikkes på en marker, fordi jeg ikke ved hvordan jeg skal vælge den rigtige fra mit array.

Skrevet lør. d. 28. november 2009 kl. 18:11:52| #3

intenz
intenz (44.450 point)
underenplov.dk
Det er lidt svært at sige entydigt. Men kan du ikke prøve at teste hvilket 'i' nummer den bruger til at sætte markeren på og hvilket den bruger når den viser adressen.

Altså bare med alert(i); under hhv. //Make new marker object og //Create a textnode when user clicks on a marker

Så bør du kunne se om id'et passer med det, som det bør være.

Skrevet tir. d. 01. december 2009 kl. 22:26:32| #4

elmoe
elmoe (17.545 point)
www.fedevideoer.dk
Det er ikke nødvendigt at teste det med en alert(i). Den bruger jo bare det næste nummer i rækken når der bliver lagt en til variablen i. Hvis jeg på en måde kunne finde ud af hvilken adresse det var der blev sat en marker på og så ud fra det vælge den adresse der svarede til det i mit array, så ville problemet være løst. Det ved jeg desværre bare ikke hvordan jeg kan gøre?

Skrevet ons. d. 02. december 2009 kl. 22:19:34| #5

intenz
intenz (44.450 point)
underenplov.dk
Det er ikke sådan jeg læser din kode.
Du henter din længde/breddegrad ud med:
geocoder.getLatLng(addressArray[i], function(latlng)

Og henter din adresse ud med:
addressArray[i - 1]);

Så første gang er i=0 på latlng og adressen i=-1 osv.

Det er måske meningen?

Skrevet tor. d. 03. december 2009 kl. 10:03:52| #6

elmoe
elmoe (17.545 point)
www.fedevideoer.dk
Du har ret. Jeg har prøvet det andet, og det er slet ikke der problemet ligger. Jeg får stadig en forkert tekst vist ved mine markers.

Skrevet søn. d. 06. december 2009 kl. 11:45:38| #7

tinem
tinem (15.245 point)
Det ville jo gøre det meget nemmere for os at hjælpe dig hvis du linkede til dit site så vi kan tjekke i Firefox/Firebug hvad problemet evt. kunne være samt se koderne.

Skrevet søn. d. 27. december 2009 kl. 11:27:06| #8

elmoe
elmoe (17.545 point)
www.fedevideoer.dk
Trækker spørgsmålet tilbage. Håber det er okay. Der har desværre ikke været nogle brugbare svar.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Hjælp til validering

Oprettet den 26. maj 2012 kl. 14.01
Stefan1 giver 20 point for svar | Giv et svar »

Javascript sliders?

Oprettet den 24. maj 2012 kl. 11.29
NizeGuy giver 15 point for svar | Giv et svar »

Validere navn i form

Oprettet den 22. maj 2012 kl. 15.13
13thsky giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger