Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Tworzenie mapy Google Maps na podstawie danych z bazy danych
filipe
post 23.07.2009, 09:51:19
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.07.2009

Ostrzeżenie: (0%)
-----


Witam,
Mam taki problem - mianowicie nie wiem jak się do tego zabrać....
Mam bazę danych lokalizacji, np:
LOKALIZACJA:
id
nazwa
ulica
nr_domu
nr_mieszkania

i chciałbym żeby na podstawie pól ulica, nr_domu,nr_mieszkania automatycznie tworzyła mi się mapa google maps z zaznaczonym adresem przekazanym poprzez powyższe zmienne. w bazie danych będzie znajdowało się np 30 różnych lokalizacji i chciałbym żeby dla każdej z nich tworzyła mi się oddzielna mapa. Takie coś jest zrealizowane np. na stronie Patrz tutaj klikając na Pokaż na mapie.
Teoretycznie w Gmaps do tworzenia lokalizacji powinno podawać się współrzędne GLat i GLng jak to jest przekazane w kodzie poniżej dla przykładowej lokalizacji:

Kod
<script type="text/javascript">



//<![CDATA[

function load() {
if (GBrowserIsCompatible()) {
          var map = new GMap2(document.getElementById("map"));
          map.addControl(new GSmallMapControl());
          var MapTypes = map.getMapTypes();
          MapTypes[0].getName= function() { return "Mapa";}
          MapTypes[1].getName = function() { return "Satelita";}
          MapTypes[2].getName = function() { return "Hybrydowa";}
          map.addControl(new GMapTypeControl());
          map.enableContinuousZoom();
          map.enableDoubleClickZoom();
          map.setCenter(new GLatLng(52.053150229418684, 20.439698696136474), 16);
          var info='<div style="background-color: #fff; width: 240px; font-size: 11px; FONT-FAMILY: Verdana, Tahoma, Arial, Sans-Serif;"><B>Jakiś napis który wyświetlany jest w oknie</B><hr><img src="zdjęcie_adr"></div>';
          var point = new GLatLng(52.0531487, 20.4397057);
          var marker = new GMarker(point);
          GEvent.addListener(marker, "click", function() {
           marker.openInfoWindowHtml(info);
          });
          map.addOverlay(marker);
          marker.openInfoWindowHtml(info);

}
}

//]]>
</script>


Nie mam pojęcia jak na w/w stronie jest to zorganizowane, ale muszę takie coś zrobić. Czy mógłby mi ktoś pomóc?

Z góry wielkie dzięki smile.gif
Powód edycji: [Spawnm]: tag
Go to the top of the page
+Quote Post
baranek77
post 23.07.2009, 09:56:33
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 7
Dołączył: 17.12.2007

Ostrzeżenie: (0%)
-----


Tworzysz sobie funkcje w javascripcie która tworzy mapę a jako parametry podajesz dane wyciągnięte z bazy np ulica miasto itd

W funkcja ładnie wyświetli Ci mapkę wg wprowadzonych danych.
Go to the top of the page
+Quote Post
filipe
post 23.07.2009, 10:03:21
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.07.2009

Ostrzeżenie: (0%)
-----


Taką funkcje mogę sobie stworzyć i podpisać, ale problem jest taki, że w bazie danych przechowuję wartości ulica, nr domu i nr mieszkania w postaci Stringów a do mapy dopisuje się współrzędne GLat i GLng. Dane te są generowane z podanego tekstowo adresu, ale raczej chyba nie mogę wpisać ich tak z palca do mapy. Czy mogę zamiast tych współrzędnych podawać po prostu adresy? Chyba nie i to jest w zasadzie podstawowy problem...
Go to the top of the page
+Quote Post
baranek77
post 23.07.2009, 10:07:17
Post #4





Grupa: Zarejestrowani
Postów: 66
Pomógł: 7
Dołączył: 17.12.2007

Ostrzeżenie: (0%)
-----


Tak można dodawać wg. ulic itp nie będę Ci pisał gotowej funkcji ale myślę, że ta strona Ci pomoże
http://gmapsapi.com/
Go to the top of the page
+Quote Post
Spawnm
post 23.07.2009, 10:10:42
Post #5





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Proszę dodać tag do tematu.
Go to the top of the page
+Quote Post
filipe
post 9.09.2009, 11:20:35
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.07.2009

Ostrzeżenie: (0%)
-----


Witam,
Napisałem ten post już jakiś czas temu, ale zabrałem się za coś innego i teraz dopiero mogłem powrócić do realizacji przedstawionego problemu.
Baranek77 napisałeś, żebym zerknął na stronę http://gmapsapi.com/- zajrzałem i owszem wiem co powinienem zrobić, ale nie wiem do końca jak.

Może mógłby mi ktoś pomóc.

A więc tak... Mam wyciągnięte z bazy danych: miasto, ulica, numer - ,gdzie odpowiednio -m[0] - nazwa miasta, m[4] - ulica, m[6] - numer mieszkania.
Oczywiście wszystko to jest zawarte w php.
Teraz poza php wpisałem:
CODE
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--skrypty-->
<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=toMojKod' type='text/javascript'></script>
</head>
<body onload='mapaStart()' onunload='GUnload()'>
<script type='text/javascript'>
<!--
// zmienne globalne
var geo;
var mapa;

function mapaStart()
{
if(GBrowserIsCompatible())
{
mapa = new GMap2(document.getElementById("mapka"),{mapTypes: [G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP]});
mapa.setCenter(new GLatLng(53.429805, 14.537883), 15);

// kontrolki mapy
mapa.addControl(new GLargeMapControl());
var typyMapy = mapa.getMapTypes();
typyMapy[0].getName= function() { return "Mapa";}
typyMapy[1].getName = function() { return "Satelita";}
typyMapy[2].getName = function() { return "Hybryda";}
mapa.addControl(new GMapTypeControl());
mapa.addControl(new GOverviewMapControl());
mapa.addControl(new GScaleControl());

// nowy obiekt do geokodowania
geo = new GClientGeocoder();
var adres='Żyrardów, 1 Maja 50';
geo.getLatLng(adres,function(punkt)
{
if (!punkt)
{
// jeśli punkt nie istnieje, to adres nie został znaleziony
alert(adres + " nie został znaleziony!");
}
else
{
// centrujemy na znalezionym punkcie
mapa.setCenter(punkt, 15);

// dodajemy w tym miejscu marker
var ikona = new GIcon();
ikona.image='http://maps.google.com/mapfiles/kml/pal3/icon52.png';
ikona.shadow='';
ikona.iconSize=new GSize(32,32);
ikona.iconAnchor=new GPoint(16,16);
ikona.infoWindowAnchor=new GPoint(16,16);

var marker = new GMarker(punkt,{icon: ikona, title: adres});
mapa.addOverlay(marker);

// i otwieramy dymek z adresem
marker.openInfoWindowHtml('<strong>Poszukiwany adres</strong><br />'+adres);
}
});
}
}
-->
</script>
<div id='mapka' style='width: 550px; height: 393px; border: 1px solid black; background: gray;'>
<!-- tu będzie mapa -->

</div>

W linijce
CODE
var adres='Żyrardów, 1 Maja 50';
wpisany jest ręcznie adres do wyświetlania. To działa bez zarzutów, ale ja potrzebuję, żeby zamiast tego adresu wczytywane były zmienne z bazy, tj.m[0],m[4],m[6].

I z tym mam właśnie problem. Czy mógłby mi ktoś pomóc? Muszę powyższy kod zmienić na php i jakoś umieścić te zmienne.

Z góry bardzo dziękuję za pomoc i proszę o możliwie szybkie odpowiedzi, albowiem zależy mi na tym, żeby zaczęło to działać.

Jeszcze raz dzięki

Ten post edytował filipe 9.09.2009, 11:35:21
Go to the top of the page
+Quote Post
thek
post 9.09.2009, 12:35:56
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To może ja Ci podpowiem...
Kod
var adres="jakis_plik.php?id="+id_usera;

A dlaczego tak? Pomyśl... Bo zapewniam, że sam podobnej rzeczy używam i działa winksmiley.jpg Wystarczy, że z bazy w tym pliku jako echo zwrócisz odpowiednio sformatowany string.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
filipe
post 9.09.2009, 13:02:16
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.07.2009

Ostrzeżenie: (0%)
-----


Z tego, co piszesz, to musiałbym stworzyć oddzielny plik php gdzie wypisywane byłyby adresy, ale u mnie takich map generowanych będzie np kilkadziesiąt po dodaniu przez jakiegoś użytkownika adresu. Nie chciałbym tworzyć po to specjalnej kolejnej strony, tylko bezpośrednio przekazywać zmienne z tej samej strony - tak, jak napisałem w przykładzie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2025 - 07:34