Olicek/GoogleMapAPI – Akce po kliknutí na marker
- Argonisius
- Člen | 10
Pro vykreslení mapy používám GoogleMapAPI plugin. Potřeboval bych po kliknutí na marker místa na mapě vykonat vlastní javascriptovou akci, ale vůbec nevím jak toho docílit. Poradíte? Předem díky.
- Oli
- Člen | 1215
@Argonisius snad by to mělo být funkční. Vyčlenil jsem
načítání js třídy do vedlejšího souboru
googleMapApiLoader.js
. Ten když si nalinkuješ pod
googleMapApi.js, tak ti to bude fungovat jako do teď (pevně v to doufám
:-)). Nemusíš ho ale použít a napsat si vlastní loader, kde uvedeš i to
vlastní volání funkce, které potřebuješ. Můžeš tam volat cokoli nad
markerem… A vypadalo by to pak takhle:
var map;
Array.prototype.forEach.call(document.getElementsByClassName('googleMapAPI'), function(el, i){
map = new GoogleMap(el);
map.doProportions();
map.markerEvents = function (marker) {
marker.addListener('click', function() {
console.log('souřadnice ' + marker.position.toString());
});
marker.addListener('dblclick', function() {
console.log('Proč na mně klikáš dvakrát?!');
});
};
if (typeof google === "undefined") {
loadScript();
} else {
map.initialize();
}
});
Klidně můžeš použít jQuery nebo cokoli jinýho. Já se chtěl javascript aspoň trochu naučit a zároveň nemít tu knihovnu na ničem závislou, tak jsem to psal v čistým javascriptu…
Pokud bys v tom našel chybu, tak prosím nahlaš…
- Argonisius
- Člen | 10
Zdá se, že to funguje podle očekávání. Bohužel jsem si neuvědomil, že mi to nebude stačit :/ Potřebuji k markeru přiřadit id místa, které bych potom v listeneru po kliknutí využil. Je možné toho docílit bez přepsání části pluginu?
- Oli
- Člen | 1215
Napadlo mě, což už jsem potom neudělal předat kromě markeru i ten
objekt se settings
. Další nápad, kterej jsem měl zatím jen
v hlavě a pro tebe by to asi bylo to co potřebuješ je nějaký custom pole
z php do js. Teď na to asi nebudu mít čas, ale pokud by jsi to chtěl
realizovat, tak budu rád za PR.
Představoval bych si to asi jako customField
klíč pod
markerem. Pokud tyhle 2 části spojíš, tak by to mohlo pokrýt tvoje
potřeby. Hodíš si id
do customFieldu toho markeru a
rozšířením callbacku o informace ke konkrétnímu markeru se k tomu id
dostaneš. Ještě jako 3. parametr by to asi mohlo vracet options,
nebo rovnou všechny
properties
- Argonisius
- Člen | 10
Udělal jsem zatím jednoduchou implementaci customFieldu – metodu na přidání pole hodnot a načtení pole z php do js objektu marker. Teď řeším další věc – chci při kliknutí na marker ikonu zvětšit. Je nějaký způsob, jak ovlivnit velikost markeru?