Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[google-maps] bij klik op marker url openen

Pagina: 1
Acties:
  • 1.045 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik zit te stoeien met google maps. Wat is nu mijn probleem. Ik heb op mijn pagina niet al te veel ruimte om google maps weer te geven. Wat had ik nu bedacht. Als men klikt op een marker open ik een url waar dan naast de map de tekst komt ipv. in een ballon. Nu krijg ik dit totaal niet voor elkaar!

Wat wel lukt is als ik op een marker klik dat hij na een url gaat maar de de tweede marker gaat naar de zelfde url en dat is niet de bedoeling.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 function load() { 
        if (GBrowserIsCompatible()) { 


      function createMarker(point,html) { 
        var marker = new GMarker(point); 
var marker = new GMarker(point,{title:html}); 
        GEvent.addListener(marker, "click", function() { 
          window.location=http://www.test.com; 
        }); 
        return marker; 
      } 


      var map = new GMap2(document.getElementById("map")); 
          map.addControl(new GSmallMapControl()) 
      map.addControl(new GMapTypeControl()); 
          map.getInfoWindow().maximize() 
      map.setCenter(new GLatLng(43.907787,-79.359741),8); 


      var point = new GLatLng(43.82589,-79.10040); 
      var marker = createMarker(point,'Text') 
      map.addOverlay(marker); 


          var point = new GLatLng(52.373139,4.891464); 
      var marker = createMarker(point,'Tekst') 
      map.addOverlay(marker); 
    } 
   }


Nu heb ik zitten denken om een GEvent.addListener toetevoegen aan de marker maar dat krijg ik echt niet voor elkaar!

Iemand een idee hoe ik het voor elkaar krijg dat iedere maker zijn eigen url heeft ?

  • Cartman!
  • Registratie: April 2000
  • Niet online
Welke foutmelding(en) krijg je dan in firebug te zien? Sowieso kan je voorbeeld nu niet werken omdat er geen quotes om http://www.test.com staan. Beetje inzet is wel vereist dus, laat even zien dat dat er al wel geweest is.

  • Semyon
  • Registratie: April 2001
  • Laatst online: 13:52
Verwijderd schreef op zondag 16 december 2007 @ 06:08:
Hoi,

Ik zit te stoeien met google maps. Wat is nu mijn probleem. Ik heb op mijn pagina niet al te veel ruimte om google maps weer te geven. Wat had ik nu bedacht. Als men klikt op een marker open ik een url waar dan naast de map de tekst komt ipv. in een ballon. Nu krijg ik dit totaal niet voor elkaar!

Wat wel lukt is als ik op een marker klik dat hij na een url gaat maar de de tweede marker gaat naar de zelfde url en dat is niet de bedoeling.

Nu heb ik zitten denken om een GEvent.addListener toetevoegen aan de marker maar dat krijg ik echt niet voor elkaar!

Iemand een idee hoe ik het voor elkaar krijg dat iedere maker zijn eigen url heeft ?
Ik heb zoiets met een DIV gedaan, helemaal weten wat je precies wilt lukt me niet, maar misschien dat een blik in de code van deze website je helpt?

http://www.ics.mq.edu.au/~szwarts/Blaxland.html

Het laadt een map, met markers. Klik je op een marker dan laat het daarnaast wat tekst/foto's zien.

Het is een beetje bagger code wat je kan veel in arrays stoppen en op andere manieren oplossen maar ik denk dat je er wel uit kan halen wat je nodigt hebt?

Only when it is dark enough, can you see the stars


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Ik heb voor TweakerMaps een array met markers, iedere marker wordt in die array gezet en opgeslagen. Je code is verder wel prima, zo te zien... zet wel aanhalingstekens om de URL, zoals Cartman! al zei...

We are shaping the future


  • UltimateB
  • Registratie: April 2003
  • Niet online

UltimateB

Pomdiedom

Zou persoonlijk alleen panto gebruiken, dit zou moeten lijden tot een pan in plaats van een flits

"True skill is when luck becomes a habit"
SWIS


Verwijderd

Ik heb hetzelfde probleem, ik denk dat je op zoek moet naar een manier om die addEventListener functie duidelijk een waarde mee te geven. Dus niet via een variabele.Maarre..
Ik ga daar nu mee stoeien dus als je inmiddels iets gevonden hebt hoor ik het graag.

Verwijderd

Deze pagina ziet er veelbelovend uit: http://ep2.nl/topic/2621/

  • Rowdy.nl
  • Registratie: Juni 2003
  • Laatst online: 15:31

Rowdy.nl

Koekje d'r bij?

Dit werkt bij mij. De marker is de betreffende marker en bij CODE_LINK moet je iets fixen voor je url. (ik open hiero zo'n balloon)
[code=javascript]GEvent.addListener(marker, 'click', CODE_LINK);[/code]

Je zou dit kunnen doen door zoiets:
[code=javascript]GEvent.addListener(marker, 'click', function() { window.location = "http://mysite.nl/page_x";});[/code]

Edit:
Ah, te rap over je code heen gelezen, je gebruikt die events al, maar je hebt je variabelen niet goed. Je gebruikt (definieerd) twee keer de marker... (dus twee keer var marker = ...)
Ik vermoed dattie daarom ook fout gaat.

[ Voor 25% gewijzigd door Rowdy.nl op 03-01-2008 12:19 ]

Rowdy.nl - X++ by day. C# by night. I drink coffee in the morning and beer in the evening.


Verwijderd

Er is waarschijnlijk een manier om een harde waarde in te vullen voor die listener functie, zodat je in elk geval de array index kunt meegeven aan de functie. Daar zijn we denk ik naar op zoek.

=====
EDIT

Ik denk dat ik het heb, het staat met uitleg op
http://groups.google.com/...d/thread/7613ba04a7b4555d

[ Voor 28% gewijzigd door Verwijderd op 03-01-2008 13:14 ]


  • Rowdy.nl
  • Registratie: Juni 2003
  • Laatst online: 15:31

Rowdy.nl

Koekje d'r bij?

Verwijderd schreef op donderdag 03 januari 2008 @ 13:04:
Er is waarschijnlijk een manier om een harde waarde in te vullen voor die listener functie, zodat je in elk geval de array index kunt meegeven aan de functie. Daar zijn we denk ik naar op zoek.
Heeft er niks mee te maken. Die GEvent.AddListener functie is goed op die manier. Hij zou om die functie een variabele url aan ta laten maken natuurlijk kunnen voorzien van een derde parameter genaamd url.

Wat me nu pas opvalt nu ik de zooi herschrijf, waarom twee keer een variabele marker aanmaken in je createMarker functie...? (lijn 6 en 7) Net zoiets kachels als wat je dus doet met de marker en point variabelen op lijnen 22/23 en 27/28...?
Ben je gewoon wat in mekaar aan het hacken op het "ik gooi vanalles bijeen en kijk wel of het wat wordt principe want ik begrijp niks van javascript"?

In ieder geval; dit zou al wat beter moeten werken... (I guess... ;)

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Define map here!
var map;

function load() { 
        if (GBrowserIsCompatible()) { 
        
            map = new GMap2(document.getElementById("map")); 
            map.addControl(new GSmallMapControl()) 
            map.addControl(new GMapTypeControl()); 
            map.getInfoWindow().maximize() 
            map.setCenter(new GLatLng(43.907787,-79.359741),8); 


            createMarker(43.82589,-79.10040, 'title 1', 'http://test.com/X');
            createMarker(52.373139,4.891464, 'title 2', 'http://test.com/Y'); 
    } 
}

function createMarker(lat, lon, html, url) {
        var point  = new GLatLng(lat, lon);
        var marker = new GMarker(point,{title:html}); 
        GEvent.addListener(marker, "click", function() { window.location = url; }); 
        map.addOverlay(marker);
}


Edit:
"Trouble calling addListener on an array of markers"

Waar zie jij die array? ;)

Enigste wat er nuttig in het artikel staat dat in dat voorbeeld in dat artikel dat het een scope probleem is van de variabele marker.
Actually, Chris has it right. It is a variable-scope problem. The
variable "marker" is being reassigned at each iteration of the array.
This variable is a object reference and is not being dereferenced until
the handler functions are called.
Dat is wel nuttig, want zoals ik al zei; het gaat iig de fout in bij het telkens opnieuw gebruiken van die variabele.
Rowdy.nl schreef op donderdag 03 januari 2008 @ 12:11:[...]
Edit:
Ah, te rap over je code heen gelezen, je gebruikt die events al, maar je hebt je variabelen niet goed. Je gebruikt (definieerd) twee keer de marker... (dus twee keer var marker = ...)
Ik vermoed dattie daarom ook fout gaat.

[ Voor 25% gewijzigd door Rowdy.nl op 03-01-2008 13:30 ]

Rowdy.nl - X++ by day. C# by night. I drink coffee in the morning and beer in the evening.


Verwijderd

"Waar zie jij die array? ;)"

Gezien de context van scope problemen bij listeners op meerdere markers is dit een heel relevant topic met oplossing en al.

Maar je bent goed hoor. Heel superieur.

  • Rowdy.nl
  • Registratie: Juni 2003
  • Laatst online: 15:31

Rowdy.nl

Koekje d'r bij?

Verwijderd schreef op donderdag 03 januari 2008 @ 13:53:
"Waar zie jij die array? ;)"

Gezien de context van scope problemen bij listeners op meerdere markers is dit een heel relevant topic met oplossing en al.

Maar je bent goed hoor. Heel superieur.
Waar ik je op wil wijzen is dat je dan het relevante stuk quote ipv eerst iets te blaten over een 'harde waarde' bij een 'array index' en vervolgens een linkje geeft naar een topic dat gaat over de eventlistener op een array van markers.

Aan de code van TS te zien zit ie vanalles te proberen waardoor het (iig op mij) overkomt als of hij (nog) niet zo bedreven is in javascript. Als je dan vanalles begint te blaten en vervolgens een linkje geeft waar toevallig ook iets in staat wat zijn probleem zou kunnen oplossen verwar je de TS meer dan dat je 'm helpt.

Ik wil het verder hier gewoon bij laten, het was iig niet de bedoeling je op je teentjes te trappen... Wil je d'r op verder gaan dan contact me ff via een DM, dan babbelen we daar gewoon even verder want dat is nogal offtopic.

Rowdy.nl - X++ by day. C# by night. I drink coffee in the morning and beer in the evening.

Pagina: 1