Autor Zpráva
Xaw
Profil
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
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
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
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
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
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
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
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
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
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
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
server mám z free hostingu na internetu, nainstalovany v PC jsem žadný ještě nezkoušel
Rellik
Profil
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
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

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0