Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[google maps] marker 20 pixels onder ander marker zetten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik heb al een tijdje geprobeerd, maar ik kom er niet uit. Ik wil dat als iemand een marker op een kaart plaats, automatisch 20 px eronder een ander marker komt.

  • asfaloth_arwen
  • Registratie: Februari 2005
  • Laatst online: 20:19
Wat heb je dan geprobeerd? Waar loop je vast? Wat verwacht je van ons? Heb je google maps op je eigen site oid?
Plaats je huidige script even :)

[ Voor 35% gewijzigd door asfaloth_arwen op 13-08-2008 10:13 ]

Specs


Verwijderd

Topicstarter
eerste punt

var point = new GLatLng(43.91892,-78.89231);
var marker = new GMarker(point);
map.addOverlay(marker);

het tweede punt moet dus gezet worden ahv het eerste, maar dan 20px meer naar onder
var point2 = new GPoint(point.x,(point.y+20));
var marker2 = new GMarker(point2);

dit lukt me gewoon niet
map.addOverlay(marker2);

  • asfaloth_arwen
  • Registratie: Februari 2005
  • Laatst online: 20:19
Ok
code:
1
var point = new GLatLng(43.91892,-78.89231);

code:
1
var point2 = new GPoint(point.x,(point.y+20));


Wat is nu de waarde van point2? Is deze waarde wel correct? Zet hem eventueel weer om in coordinaten om te controleren.

[ Voor 21% gewijzigd door asfaloth_arwen op 13-08-2008 10:25 ]

Specs


Verwijderd

Wat ik doe is een icon maken en deze als 2de argument doorgeven aan GMarker, dus:
code:
1
var marker = new GMarker(point,icon);


Het icon kun je namelijk een positie geven (en een afmeting etc etc), die bij jou dus 20px lager ligt. Voorbeeld voor het maken van een icon met bepaalde positie:
code:
1
icon.iconAnchor = new GPoint(20, 20);

edit, die icon is overigens een GIcon zie de docs van Google

[ Voor 7% gewijzigd door Verwijderd op 13-08-2008 10:26 ]


  • Icelus
  • Registratie: Januari 2004
  • Niet online
Verwijderd schreef op woensdag 13 augustus 2008 @ 10:21:
eerste punt

var point = new GLatLng(43.91892,-78.89231);
var marker = new GMarker(point);
map.addOverlay(marker);

het tweede punt moet dus gezet worden ahv het eerste, maar dan 20px meer naar onder
var point2 = new GPoint(point.x,(point.y+20));
var marker2 = new GMarker(point2);

dit lukt me gewoon niet
map.addOverlay(marker2);
De variabele point bevat de lengte- en breedtegraad, niet de pixel-coördinaat op de kaart. Je moet een omweg maken door de lengte- en breedtegraad om te zetten naar pixels en vervolgens weer terugrekenen. Dit kan met de functies fromLatLngToDivPixel en fromContainerPixelToLatLng.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var point = new GLatLng(43.91892,-78.89231);

// Het 'midden' moet ingesteld zijn vóór het omrekenen.
map.setCenter( point, 16 );

// Reken lengte- en breedtegraad om naar
// pixels van huidige kaart/zoomniveau.
var point2 = map.fromLatLngToDivPixel( point );

// Pas y-coördinaat aan.
point2.y = point2.y + 20;

// Reken terug van pixels naar lengte- en breedtegraad.
var point3 = map.fromContainerPixelToLatLng( point2 );

// Zet markeringen op de kaart.
map.addOverlay(new GMarker(point));
map.addOverlay(new GMarker(point3));

[ Voor 5% gewijzigd door Icelus op 13-08-2008 23:23 ]

Developer Accused Of Unreadable Code Refuses To Comment

Pagina: 1