Google maps + ajax získávání a generování dat

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

Ahoj,

chtěl bych v nette udělat s využitím google maps aplikaci, která bude získávat z google maps aktuální středovou pozici x a y a zároven do ní budu dostávat markery s nějaký limitem. Je už nějaký takový addon nebo mohl by mě někdo nasměrovat, jak tohle udělat v nette?

H.

Oli
Člen | 1215
+
0
-

Koukal jsi se vubec na addon portal? Můžeš vyzkoušet muj doplnek. Zatim jsem ho nasazoval jen na jeden projekt, tak je mozny, ze tam budou nejaky chyby, tak budu rad, pokud to vyzkousis, kdyz das nejakej feedback ;-)

Chuchy
Člen | 77
+
0
-

To je pěkné, ale nejsem moc sběhlý v nette, tak bych chtěl poradit, jak lze získat data o aktuální gps souřadnici a jak tam potom vyvalidovat pouze část markerů?

matopeto
Člen | 395
+
0
-

Tak toto uz nie je az tak o nette, ako o javascripte..

Chuchy
Člen | 77
+
0
-

Paráda díky, to jsem potřeboval vědět.

Chuchy
Člen | 77
+
0
-

Ještě jsem narazil na jeden problém. Potřebuji z javacriptu předat hodnoty do handlu, ale nejde to, jediná věc, která my šla byla, napsat je prasácky do url odkazu.

?do=googleMap-markers&googleMap-gps=%2850.250718%2C+14.583435000000009%29&googleMap-zoom=4

		if (!url || 0 === url.length)
		{
			url={link markers!, center, zoom};

			alert(url);
		}
		clearOverlays();

		$.getJSON( url, function( data )
		{
		}
	// může být i jeden parametr array
	public function handleMarkers($gps, $zoom)
	{
		dump($gps);
		$this->getPresenter()->sendResponse(new JsonResponse($this->markers));
	}

Je nějaký fígl, jak tyto hodnoty předa jinak než pevný nastavením url?

Editoval Chuchy (25. 5. 2014 21:20)

Oli
Člen | 1215
+
0
-

No obecně pokud získáš GPS souřadnice až v js, tak jediné jak je můžeš předat je getem nebo postem. Pokud ti teda přijde pomocí GET prasácky, tak si je předej POSTem.

Chuchy
Člen | 77
+
0
-

Ne get je v pořádku, jen mi jde o to, jak ty hodnoty dostat do {link handle!, gps, zoom}, aby to fungovalo

Editoval Chuchy (25. 5. 2014 22:08)

Oli
Člen | 1215
+
0
-

Zhruba takhle

$.nette.ajax({
  url: {link handle!},
  data: { gps: gps, zoom: 4 }
})
Chuchy
Člen | 77
+
0
-

A když použiju getJson, jak docílím přesné adresy vytvořené nette, narozdíl od

/?do=googleMap-markers&gps=(50.250718%2C+14.583435000000009)&zoom=4

ale

/?do=googleMap-markers&googleMap-gps=(50.250718%2C+14.583435000000009)&googleMap-zoom=4

Dík

Oli
Člen | 1215
+
0
-

Nevím co přesně jsi chtěl tím posledním příspěvkem říct. :-) Každopádně, můžeš si klidně upravit v routeru jak bude ta URL vypadat.

Chuchy
Člen | 77
+
0
-

Chtěl jsem říct, že nette si generuje odkazy samo a já chci teda zjistit, jestli si umí poradit i s javacriptem, abych nemusel napevno psát url adresu.

Oli
Člen | 1215
+
0
-

No a když to necháš na Nette aby si vytvořilo URL samo a ty jsi případně změnil routování aby to vypadalo tak jak chceš ty, to by šlo?
Například tohle:

/?do=googleMap-markers&googleMap-gps=(50.250718%2C+14.583435000000009)&googleMap-zoom=4

může vypadat jako:

/markers/gps=(50.250718%2C+14.583435000000009)/zoom=4

Jinak javascriptu můžeš nastavit stejný vytváření URL jako kdekoli jinde. stačí na to ten

{link handle!}

Tohle ti vytvoří asi něco jako /?do=googleMap-markers (to můžeš v routeru napsat aby se „přetransformovalo“ třeba na /markers). Případně to prosím trochu víc rozveď. Nějak pořád nechápu co je tvým primárním cílem :-)

Chuchy
Člen | 77
+
0
-

Chtěl bych udělat plně dynamický link. Takže kdykoliv mě napadne změnit url v routeru, tak nechci přepisovat ručně napsaný js v kodu. :-)

Oli
Člen | 1215
+
0
-

No, tak na to pouzij ten {link}. To vygeneruje „správný“ link pro Nette a ty si můžeš v routeru jeho podobu upravit kdykoli budeš chtít…

Chuchy
Člen | 77
+
0
-

Díky, to jsem potřeboval vědět :))