[erledigt] GMAP: übereinanderliegende Marker leicht verschieben?
am 14.12.2013 - 13:31 Uhr in
Hallo Freunde,
ich nutze "GMaps Utility Library MarkerClusterer" um Cluster auf der GMAP anzuzeigen.
Bei mir gibt es Nodes die genau die selbe Adresse (wie andere Nodes) haben ...
Wenn man nun in diesen Cluster hineinzoomt und im Maximumzoom angekommen ist, liegen die Marker exakt übereinandern, sie werden praktisch als ein einziger angezeigt, obwohl an dieser Adresse 10 verschiedenen Nodes/Dienstleister vorhanden sind.
Wenn ich diesen Marker nun anklicke, bekomme ich nur die Infos zu dem Dienstleister der oben aufliegt - die anderen sind leider nicht anklickbar.
Gibt es eine Möglichkeit jeden einzelenen Marker leicht zu verschieben, so dass die Marker mit der selben Adresse, wie ein "Blumenstrauß" angeordnet sind und auch einzeln sichtbar/anklickbar sind?
Danke und Gruß
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi Matthias, ich kenne das
am 14.12.2013 - 16:18 Uhr
Hi Matthias,
ich kenne das Modul leider nicht-kann aber nur zum Umstieg auf OpenLayers raten. Unabhängig von GMap oder OL unterstützen beide APIs die Möglichkeit Features zu clustern, dh. je weiter raus du gezoomt hast, desso mehr Features werden in einem Bubble zusammengefasst. Nun ist es so dass bei die in einem Radius von 0 immer noch x Objekte zusammenkommen-d.h. normalerweise sollten diese dann weiterhin geclustert sein-und mit einem GetFeature-Info solltest du die Informationen zu allen, durch den Bubble repräsentierten Features, die Informationen erhalten.
mfg
Andy
Aller Anfang ist schwer...
Hallo Andi,danke für den
am 16.12.2013 - 10:49 Uhr
Hallo Andi,
danke für den Hinweis zu OpenLayers aber da ich damit noch nicht gearbeitet habe, habe ich bei gmap weitergemacht und es jetzt auch hinbekommen.
Mit diesem Code in der template.php kann man das erreichen ...
<?php
function MYTHEME_gmap($element) {
dpm($element);
if (isset($element['element']['#gmap_settings'])) {
$offset = 0.5;
$markers =& $element['element']['#gmap_settings']['markers'];
for ($outer=0; $outer < count($markers); $outer++) {
$cc=0;
$outer_place =& $markers[$outer];
for ($inner = $outer+1; $inner < count($markers); $inner++) {
$inner_place =& $markers[$inner];
if ($outer_place['latitude'] == $inner_place['latitude'] &&
$outer_place['longitude'] == $inner_place['longitude']) {
$cc++;
// nudge the location of the inner place
$inner_place['latitude'] += -0.01*sqrt($cc)*sin($cc*45);
$inner_place['longitude'] += -0.01*sqrt($cc)*cos($cc*45);
}
}
}
}
return theme_gmap($element);
}
?>
Ich habe das auf ....
<?php
$inner_place['latitude'] += -0.00001*sqrt($cc)*sin($cc*45);
$inner_place['longitude'] += -0.00001*sqrt($cc)*cos($cc*45);
?>
... angepasst, sodass die Marker ganz eng beieinander liegen ....
Mit OpenLayers werde ich mich bei Gelegenheit aber auch mal beschäftigen.
Danke und Gruß
Matthias
Drupal rockt!!!
[erledigt]: leider
am 21.02.2014 - 10:24 Uhr
funktioniert der Code bei mir nicht.
ich habe diverse Clusterscripte ausprobiert und komme nicht weiter. Im moment ist GMaps Utility Library MarkerClusterer eingestellt und der obige Code in der template.php (subtheme von omega) eingetragen, aber die Marker liegen immer noch übereinander.
Was mach ich falsch?!
dankbar für jede Hilfe grüsst
Don
NACHTRAG: vielleicht mach ich beim nächsten mal keinen Tippfehler beim einsetzen meines Theme-Namens - dann klappts auch mit dem Script - sorry für den unnötigen Post