Olicek/GoogleMapAPI – Akce po kliknutí na marker

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Argonisius
Člen | 10
+
0
-

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
+
0
-

Mam pocit, ze tohle to neumi. Zkusim se na to do Velikonoc podivat a nejak to umoznit…

Argonisius
Člen | 10
+
0
-

Super, děkuju!

Oli
Člen | 1215
+
0
-

@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
+
0
-

Díky moc! Hned jak bude možné, tak vyzkouším a dám vědět.

Argonisius
Člen | 10
+
0
-

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
+
0
-

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
+
0
-

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?

Oli
Člen | 1215
+
0
-

Muzes si poslat vlastní marker. Mozna by šlo v tom onCclick eventu nějak vymenit marker za jinej. Nic lepšího mě takhle od mobilu nenapadá.

GEpic
Člen | 566
+
0
-

A co takhle se vykašlat na Google Mapy a zkusit něco jiného, např:

http://leafletjs.com/…k-start.html