Autor | Zpráva | ||
---|---|---|---|
Xaw Profil |
#1 · Zasláno: 9. 6. 2011, 15:27:51
Zdravím,
Chtěl bych se zeptat jakým způsobem by se dalo ke google maps přidat Značku místa se zadaním popisu po registraci na stránkách libovolnym navštěvníkem stránek jako třeba mají na http://www.simslife.cz/index.php?section=setlocation Děkuju za odpověd |
||
Rellik Profil |
#2 · Zasláno: 9. 6. 2011, 17:59:24
Já sem kdysi něco podobného programoval, ale bylo to pro http://api.mapy.cz/ a nedělalo to co v ukázce. Šlo tam jen přidávat místa, které se pak na mapě zobrazovaly. Bylo to tažené přes databázi, do které se vložily GPS souřadnice a ty to pak vypsaly na stránku s mapou. Šly k tomu body připsat informace a přidat obrázek. Mělo to být na obecní stránky http://veletiny.cz/?page=mapa jako taková interaktivní mapa s památkama. Nakonec sem to udělal jinak http://veletiny.cz/?page=virtual i když ta původní mapa taky funguje, ale byl tam trochu problém s těmi obrázky, tak sem tam nakonec nic nevkládal a mapa slouží jen jako mapka okolí...
|
||
Xaw Profil |
#3 · Zasláno: 9. 6. 2011, 20:17:59
Právě že není problém sám tyhle informace přidat, horší je to aby ostatní lidé (hráči) mohli ty GPS souřadnice sami nastavit podle sebe.
|
||
Rellik Profil |
#4 · Zasláno: 9. 6. 2011, 20:32:18 · Upravil/a: Rellik
A jaký je v tom problém?? Vytvořit administraci, kde bude možné přidávat ty GPS?? Na stránce http://mapy.cz je nabídka : Měření/ GPS stačí kliknout , zkopírovat GPS souřadnice a pak je vložit do databáze. A bod je na světě... ;-)
konkrétně na těch stránkách to mám tak: |
||
Rellik Profil |
#5 · Zasláno: 9. 6. 2011, 21:09:53
Jinak trochu ti napovím:
Struktura tabulky v DB: CREATE TABLE IF NOT EXISTS `mapa` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `loc_x` text, `nadpis` text, `popis` text, `pict` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 PACK_KEYS=0 AUTO_INCREMENT=1 ; a upravený script z http://api.mapy.cz <?php $spojeni = mysql_connect($dbserver,$dblogin,$dbheslo ); mysql_select_db($dbnazev, $spojeni); $pocet=mysql_num_rows(mysql_query("SELECT * FROM mapa")); $vypis = mysql_query("SELECT * FROM mapa"); ?> <script type="text/javascript"> //<![CDATA[ if(SZN.isSupported){ var mapa = new SZN.MapEngine(document.getElementById('mojeMapa')); mapa.mouseSet(3); mapa.zoomSet(11); var pp = mapa.wgsToPP('49d2m12.143sN','17d33m51.245sE'); mapa.setCenter(pp.x,pp.y); // box pro pridani ovladacich prvku var layoutBox = mapa.getDefaultLayoutBox() // vytvoreni a pridani ovladaciho prvku pro pohyb s mapou var moveControl = new SZN.Visual.MoveControl(); var move = mapa.addControls(moveControl,layoutBox,10,12); // vytvoreni a pridani ovladaciho prvku pro nastaveni priblizeni var zoomControl = new SZN.Visual.ZoomControl('full'); // vypocteme si vertikalni polohu pro umisteni var pos = mapa.getControlById(move).getSize().height + 17; mapa.addControls(zoomControl,layoutBox,25,pos); // zapnuti ukazatele severu mapa.setNorthRuler(1); // zapnuti ukazatele meritka mapa.setScaleRuler(1); /* pridame vice znacek do mapy a nektere opatrime je vizitkami 49°2'15.625\"N, 17°33'50.488\"E */ //var pp0 = mapa.wgsToPP('49°2m13.963"N','17°33m50.944"E'); // veletiny <?php $pocet=mysql_num_rows(mysql_query("SELECT * FROM mapa")); $vypis = mysql_query("SELECT * FROM mapa"); while($row = mysql_fetch_array($vypis)){ $var = "var pp".$row["id"]." = mapa.wgsToPP('{loc}');\n"; $var = str_replace('{loc}',$row[loc_x],$var); echo $var; } ?> // vytvorime znacky // tato znacka je obycejna neinteraktivni // var mark0 = mapa.makeMark('center','Veletiny'); // mapa.addMark(pp0.x,pp0.y,mark0); /* definujeme si funkci, kterou budeme volat po kliknuti na znacku bude volana se tremi argumenty e - udalost elm - html element na ktterem je zavesen posluchac udalosti mark - odkaz objekt znacky, na kterou se kliklo */ function markClick(e,elm,mark){ var id = mark.getId(); var cardData = cardDataFolder[id]; var crd = new SZN.Visual.BaseCard(mark.pos.x,mark.pos.y,cardData,null,null,null) mapa.addCard(crd); } /* definujeme si objekt s daty pro vizitky jednotlive vlasrnosti objektu budou pojmenovany shodne jako id znacek */ var cardDataFolder = { <?php $pocet=mysql_num_rows(mysql_query("SELECT * FROM mapa")); $vypis = mysql_query("SELECT * FROM mapa"); while($row = mysql_fetch_array($vypis)){ $vypis1 = "mark{id} : {obsah:[{title:'{nadpis}',cont:'{pict}<br /><b>{popis}</b>'}]},\n"; $vypis1 = preg_replace('=([^\s]*)(www\.)=', ' http://www.', $vypis1); $vypis1 = preg_replace('=([^\s]*)(\w://[www\.]*)([^\s]*)=', '<a href="\\1\\2\\3\\4" target="_blank">\\3</a>', $vypis1); $vypis1 = str_replace("http://http://"," http://",$vypis1); $vypis1=str_replace('{nadpis}',$row['nadpis'],$vypis1); $vypis1=str_replace('{id}',$row['id'],$vypis1); $vypis1=str_replace('{popis}',$row['popis'],$vypis1); $vypis1=str_replace('{pict}','<img src="pamatky/'.$row['pict'].'" alt="'.$row['pict'].'" />',$vypis1); echo $vypis1; } ?> } <?php $pocet=mysql_num_rows(mysql_query("SELECT * FROM mapa")); $vypis = mysql_query("SELECT * FROM mapa"); while($row = mysql_fetch_array($vypis)){ $i=0; echo "var mark".$row["id"]." = mapa.makeMark('company','".$row["nadpis"]."','i','mark".$row["id"]."'); /* aktivujeme znacku */ mark".$row["id"].".setAction(window,markClick); /* pridame znacku do mapy */ mapa.addMark(pp".$row["id"].".x,pp".$row["id"].".y,mark".$row["id"].");\n"; } ?> } //]]> </script> Zbytek si dodělej a dohledej na těch stránkách... |
||
Xaw Profil |
#6 · Zasláno: 9. 6. 2011, 21:17:11
Děkuju, ja jen že se v PHP moc nevyznám, spiš vůbec, ale určitě s tím něco udělám i s výsledkem :-)
|
||
Rellik Profil |
#7 · Zasláno: 9. 6. 2011, 21:22:21
ten script na výpis je komplet. Jen si vytvoř formulář podle té tabulky v db a razegistruj se na ty api.mapy a pak ti to bude fungovat...
|
||
Xaw Profil |
#8 · Zasláno: 9. 6. 2011, 22:11:48
Jen takova otazečka, v čem tohle všechno děláš? tu mapu sem rozchodil, jen s tou tabulkou mám problem, jak na ní
|
||
Rellik Profil |
#9 · Zasláno: 10. 6. 2011, 12:53:34
Xaw:
„Jen takova otazečka, v čem tohle všechno děláš?“ No v čem, to je celkem jedno, stačí i poznímkový blok. Nicméně na programování používám program BLUEFISH Na návod jak vytvořit tabulku a do ní zapisovat data kukni třeba na: http://firstpage.profitux.cz/?page=uvod_sql ;-) |
||
Xaw Profil |
#10 · Zasláno: 10. 6. 2011, 21:40:33
Bohužel s tim nemám žádné zkušenosti, ikdyž jsem koukal na tu stránku, pořád nevím jak ta databáze funguje
|
||
Rellik Profil |
#11 · Zasláno: 10. 6. 2011, 22:01:18
Na pc máš nainstalovaný nějaký servr, kde zkoušíš scripty? http://localhost ?? Jestli ano máš určitě i databázi a admin rozhraním: http://localhost/phpmyadmin/ tam si dej vytvoři novou databázi třeba s názvem "mapa" a do níc pomocí "SQL" nechej vytvořit tabulku:
CREATE TABLE IF NOT EXISTS `mapa` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `loc_x` text, `nadpis` text, `popis` text, `pict` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 PACK_KEYS=0 AUTO_INCREMENT=1 ; stačí to zkopírovat a vložit do v phpmyadminovi do "Spustit SQL dotaz(y)..." Pak si vytvoř script pro vkládání dat do této tabulky pomocí návodu ze stránky, kterou sem ti psal v minulém příspěvku... |
||
Xaw Profil |
#12 · Zasláno: 10. 6. 2011, 23:32:44
server mám z free hostingu na internetu, nainstalovany v PC jsem žadný ještě nezkoušel
|
||
Rellik Profil |
#13 · Zasláno: 11. 6. 2011, 07:00:49
Aha, tak to se pak špatně dělá... nainstaluj si potřebný servr a databázi k sobě do pc podle návodu http://myego.cz/item/instalace-apache-mysql-a-php-na-windows
Pak skoukni ty odkazy a pokus se vytvořit ten zápis do databáze. |
||
Xaw Profil |
#14 · Zasláno: 11. 6. 2011, 12:51:30
Tak jsem to zkoušel a dobral jsem se k http://wewaii.99k.org/ jenže ted ten bod který přidám potřebuju dostat na jinou mapu na které by už zůstal trvale
|
||
Časová prodleva: 13 let
|
0