Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

moduł [dlh_googlemaps] Google Maps Module


  • Proszę się zalogować aby odpowiedzieć
21 odpowiedzi na ten temat

#1
pXp

pXp

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 164 postów
  • Strona www:zobacz
  • LokalizacjaZabrze
Witam
Panowie - wdrażał ktoś z Was ten moduł?
http://typolight.org...s.10008.en.html
czyli [dlh_googlemaps] Google Maps Module.

pozdrawiam
  • 0

#2
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Tak, co chcesz wiedzieć?
  • 0

Codefog - Contao web development


#3
pXp

pXp

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 164 postów
  • Strona www:zobacz
  • LokalizacjaZabrze
Tru, gdzie wpisywałeś API?
  • 0

#4
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Plik show_googlemap.php 21 linijka.
  • 0

Codefog - Contao web development


#5
pXp

pXp

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 164 postów
  • Strona www:zobacz
  • LokalizacjaZabrze
Aha, czyli po staremu, jak w poprzednich modułach z google.
  • 0

#6
feft

feft

    Bywalec

  • Zarejestrowani
  • PipPip
  • 29 postów
Mam problem z tym modułem, dzisiaj ściągnąłem skrypt i nie mogę znaleźć pliku show_googlemap.php - może ktoś wystawić w neciepełną wersję? Albo powiedzieć, gdzie mam ustawić klucz?
Piotr
  • 0
Piotr

#7
qrczak

qrczak

    Ekspert

  • Zarejestrowani
  • PipPipPipPipPip
  • 415 postów
  • LokalizacjaŻuławy
A w katalogu templates go nie ma?
  • 0

#8
feft

feft

    Bywalec

  • Zarejestrowani
  • PipPip
  • 29 postów
Nie ma, jest tam tylko .htaccess oraz mod_dlh_googlemaps.tpl, a jego 21 linijka to coś takiego:
var <?php echo $this->map; ?> = new GMap2(document.getElementById("<?php echo $this->map; ?>"));

  • 0
Piotr

#9
spartanin

spartanin

    Bywalec

  • Zarejestrowani
  • PipPip
  • 17 postów
Kod wpisujesz online :D.
Robisz tak:
1. Logujesz się do administracji
2. Wybierasz zakładkę "Struktura stron".
3. Edytujesz Twój serwis - stronę główną (root) - tą na samej górze struktury.
4. W karcie edycji na samym dole zobaczysz pole: Google API Key - wpisujesz i zapisujesz edycję i wsio :).
  • 0

#10
feft

feft

    Bywalec

  • Zarejestrowani
  • PipPip
  • 29 postów
Dzięki, co prawda po wpisaniu klucza nadal strona wyświetlała się bez mapy (w kodzie strony zamiast kodu była spacja), ale wpisałem ten kod na sztywno w pliku mod_dlh_googlemaps.tpl i już działa. Teraz został jeszcze jeden problem - co zrobić, żeby mapa pokazywała konkretny adres, np. Warszawa, ul. Miodowa 2?
Gdzie to należy wpisać?
Piotr
  • 0
Piotr

#11
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Krok 1:
Wejdź na stronę http://nieruchomosci...lokalizator.php, wpisz adres i skopiuj współrzędne.
Obrazek: http://easycaptures.com/2173172159

Krok 2:
Wklej współrzędne w konfiguracji modułu. (usuÅ„ spację po przecinku)

Obrazek: http://easycaptures.com/0756457216
//deklaracja ikonki
var ikona1 = new GIcon();   
ikona1.image = "http://www.google.com/intl/en_ALL/mapfiles/markerH.png";   
ikona1.shadow = "http://www.google.com/intl/en_ALL/mapfiles/shadow50.png";   
ikona1.iconSize = new GSize(20, 34);   
ikona1.infoWindowAnchor = new GPoint(16,16);   
ikona1.iconAnchor = new GPoint(16,16);   
ikona1.shadowSize = new GSize(37, 34);   

map.enableContinuousZoom();
var punkt  = new GLatLng(xxx);   
var marker = new GMarker(punkt,{icon: ikona1});
map.addOverlay(marker);
Krok 3:
Powinno działać :D
Jak nie trybi to pisz!


Ad krok 1:
jeśli w miejsce współrzędnych wyskoczy zero, kliknij na pinezkę na mapie (ona zniknie), i kliknij przycisk "Szukaj"

  • 0

Codefog - Contao web development


#12
feft

feft

    Bywalec

  • Zarejestrowani
  • PipPip
  • 29 postów
Już działa, dziękuję wszystkim za pomoc
Piotr
  • 0
Piotr

#13
evvka

evvka

    Bywalec

  • Zarejestrowani
  • PipPip
  • 27 postów
proszę o pomoc w uruchomieniu mamy google, ponieważ po wpisaniu w TL root page w miejsce Google API Key cały czas na str jest komunikat:
Serwer API serwisu Mapy Google odrzucił żądanie. Może to wynikać z tego, że klucz API użyty w tej witrynie został zarejestrowany dla innej witryny. Nowy klucz dla tej witryny można wygenerować pod następującym adresem: http://code.google.com/apis/maps/.

na forum piszecie że wystarczy w pliku system/modules/dlh_googlemaps/templates/mod_dlh_googlemaps.tpl dopisać API Key, w którym miejscu powinien być key?
i czy "deklaracja ikonki" może być dopisana w dowolnym miejscu.
Widzę że pXp na stronach przez Ciebie robionych masz mamy google?


kod mod_dlh_googlemaps.tpl wygląda tak:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php if (!$this->searchable): ?><!-- indexer::stop --><?php endif; ?><?php echo $this->cssID; ?><?php if ($this->style): ?>
</head>
<body>
<div class="<?php echo $this->class; ?> block"> style="<?php echo $this->style; ?>"<?php endif; ?>>
<?php if ($this->headline): ?>
<<?php echo $this->hl; ?>><?php echo $this->headline; ?><!--<?php echo $this-->hl;
?>>
<?php endif; ?><?php if ($this->alttext) : ?>
<div style="display: none;"><?php echo $this->alttext; ?></div>
<?php endif; ?>
<div class="dlh_googlemap block"
 id="<?php echo $this->map; ?>" style="display: block;"></div>
<script
 src="http://maps.google.com/maps?file=api&v=2&key=<?php echo $this->google_id; ?>&sensor=<?php echo $this->sensor; ?>"
 type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load<?php echo $this->map; ?>() {
	if (GBrowserIsCompatible()) {
		var <?php echo $this->map; ?> = new GMap2(document.getElementById("<?php echo $this->map; ?>"));
		<?php if ($this->mapcontrol) : ?>
			<?php echo $this->map; ?>.addControl(new <?php echo $this->mapcontrol; ?>());
		<?php endif; ?>
		<?php if ($this->mapswitch) : ?>
			<?php echo $this->map; ?>.addControl(new GMapTypeControl());
		<?php endif; ?>
		<?php if ($this->physical) : ?>
			<?php echo $this->map; ?>.addMapType(G_PHYSICAL_MAP);
		<?php endif; ?>
		<?php if (!$this->hybrid) : ?>
			<?php echo $this->map; ?>.removeMapType(G_HYBRID_MAP);
		<?php endif; ?>
		<?php if (!$this->satellite) : ?>
			<?php echo $this->map; ?>.removeMapType(G_SATELLITE_MAP);
		<?php endif; ?>
		<?php if (!$this->normal) : ?>
			<?php echo $this->map; ?>.removeMapType(G_NORMAL_MAP);
		<?php endif; ?>
		<?php echo $this->map; ?>.setMapType(<?php echo $this->view; ?>);
		<?php echo $this->map; ?>.setCenter(new GLatLng(<?php echo $this->coords; ?>), <?php echo $this->zoom; ?>);
		<?php if ($this->marker) : ?>
			var <?php echo $this->map; ?>_point = new GLatLng(<?php echo $this->marker_coords; ?>);
			var <?php echo $this->map; ?>_icon = new GIcon(G_DEFAULT_ICON);
			<?php if ($this->icon) : ?>
				<?php echo $this->map; ?>_icon.image = "<?php echo $this->icon; ?>";
				<?php if ($this->shadow || (is_array($this->shadow) && sizeof($this->shadow) < 1)) : ?>
					<?php echo $this->map; ?>_icon.shadow = "<?php echo $this->shadow; ?>";
					<?php echo $this->map; ?>_icon.shadowSize = new GSize(<?php echo $this->shadowsize; ?>);
				<?php endif; ?>
				<?php echo $this->map; ?>_icon.iconSize = new GSize(<?php echo $this->iconsize; ?>);
				<?php echo $this->map; ?>_icon.iconAnchor = new GPoint(<?php echo $this->iconanchor; ?>);
			<?php endif; ?>
			<?php echo $this->map; ?>_marker = new GMarker(<?php echo $this->map; ?>_point, <?php echo $this->map; ?>_icon);
			<?php echo $this->map; ?>.addOverlay(<?php echo $this->map; ?>_marker);
			<?php if ($this->infowindow) : ?>
				<?php echo $this->map; ?>_icon.infoWindowAnchor = new GPoint(<?php echo $this->infowindow_anchor; ?>);
				GEvent.addListener(<?php echo $this->map; ?>_marker, "click", function() { <?php echo $this->map; ?>_marker.openInfoWindowHtml("<?php echo $this->infowindow_text; ?>"); });
				<?php if ($this->infowindow_auto) : ?>
					<?php echo $this->map; ?>_marker.openInfoWindowHtml("<?php echo $this->infowindow_text; ?>");
				<?php endif; ?>
			<?php endif; ?>
		<?php endif; ?>
		<?php if ($this->params) : ?>
			<?php echo $this->params; ?>
		<?php endif; ?>
	}
}
window.setTimeout("load<?php echo $this->map; ?>()", 500);
//]]>
</script></div>
<?php if (!$this->searchable): ?>
<!-- indexer::continue --><?php endif; ?>
</body>
</html>
Jest jeszcze plik system/modules/dlh_googlemaps/ModuleDLH_GoogleMaps.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');



/**

 * TYPOlight webCMS

 *

 * The TYPOlight webCMS is an accessible web content management system that 

 * specializes in accessibility and generates W3C-compliant HTML code. It 

 * provides a wide range of functionality to develop professional websites 

 * including a built-in search engine, form generator, file and user manager, 

 * CSS engine, multi-language support and many more. For more information and 

 * additional TYPOlight applications like the TYPOlight MVC Framework please 

 * visit the project website http://www.typolight.org.

 *

 * PHP version 5

 * @copyright  Christian de la Haye 2008 

 * @author     Christian de la Haye 

 * @package    DLH_GoogleMaps 

 * @license    LGPL 

 * @filesource

 */





/**

 * Class ModuleDLH_GoogleMaps 

 *

 * @copyright  Christian de la Haye 2008 

 * @author     Christian de la Haye 

 * @package    Controller

 */

class ModuleDLH_GoogleMaps extends Module

{



	/**

	 * Template

	 * @var string

	 */

	protected $strTemplate = 'mod_dlh_googlemaps';





	/**

	 * Display a wildcard in the back end

	 * @return string

	 */

	public function generate()

	{

		if (TL_MODE == 'BE')

		{

			$objTemplate = new Template('be_wildcard');

			$objTemplate->wildcard = '### GOOGLE MAP '.$this->name.' ###';



			return $objTemplate->parse();

		}



		return parent::generate();

	}



	/**

	 * Generate module

	 */

	protected function compile()

	{

		$root_id = $this->getRootIdFromUrl();

		$root_details = $this->getPageDetails($root_id);

		$this->Template->map = 'dlh_googlemap_'.$this->id;

		$this->Template->google_id = $root_details->dlh_googlemaps_id;

		$this->Template->coords = $this->dlh_googlemaps_coords;

		$this->Template->zoom = $this->dlh_googlemaps_zoom;

		if ($this->dlh_googlemaps_sensor) {

			$this->Template->sensor = 'true';

		} else {

			$this->Template->sensor = 'false';

		}

		$this->Template->params = ereg_replace('map.', $this->Template->map . '.', ereg_replace('(', '(', ereg_replace(')', ')', ereg_replace('=', '=', trim($this->dlh_googlemaps_params)))));

		$width = unserialize($this->dlh_googlemaps_width);

		$height = unserialize($this->dlh_googlemaps_height);

		$this->Template->width = $width['value'].$width['unit'];

		$this->Template->height = $height['value'].$height['unit'];

		if ($this->dlh_googlemaps_mapcontrol) :

			if ($this->dlh_googlemaps_mapcontrol == "dlh_googlemaps_large") :

				$this->Template->mapcontrol = "GLargeMapControl";

			else :

				$this->Template->mapcontrol = "GSmallMapControl";

			endif;

		endif;

		switch($this->dlh_googlemaps_view) {

			case "dlh_googlemaps_normal":

				$this->Template->view = "G_NORMAL_MAP";

				break;

			case "dlh_googlemaps_satellite":

				$this->Template->view = "G_SATELLITE_MAP";

				break;

			case "dlh_googlemaps_hybrid":

				$this->Template->view = "G_HYBRID_MAP";

				break;

			case "dlh_googlemaps_physical":

				$this->Template->view = "G_PHYSICAL_MAP";

				break;

		}

		if ($this->dlh_googlemaps_views) :

			$views = unserialize($this->dlh_googlemaps_views);

		endif;

		if (sizeof($views) > 0) :

			$this->Template->mapswitch = true;

			if (in_array("dlh_googlemaps_normal",$views)) :

				$this->Template->normal = true;

			endif;

			if (in_array("dlh_googlemaps_satellite",$views)) :

				$this->Template->satellite = true;

			endif;

			if (in_array("dlh_googlemaps_hybrid",$views)) :

				$this->Template->hybrid = true;

			endif;

			if (in_array("dlh_googlemaps_physical",$views)) :

				$this->Template->physical = true;

			endif;

		endif;

		if ($this->dlh_googlemaps_marker) :

			$this->Template->marker = true;

			if ($this->dlh_googlemaps_marker_coords) :

				$this->Template->marker_coords = $this->dlh_googlemaps_marker_coords;

			else :

				$this->Template->marker_coords = $this->dlh_googlemaps_coords;

			endif;

			if ($this->dlh_googlemaps_marker_icon) :

				$icondata = unserialize($this->dlh_googlemaps_marker_icon);

				$shadowdata = unserialize($this->dlh_googlemaps_marker_shadow);

				$icon = $icondata[0];

				$shadow = $shadowdata[0];

				$this->Template->icon = $icon;

				$this->Template->shadow = $shadow;

				if (file_exists(TL_ROOT . '/' . $icon)) :

					$size = getimagesize(TL_ROOT . '/' . $icon);

					$this->Template->iconsize = $size[0] . "," . $size[1];

				else :

					$this->Template->iconsize = "0,0";

					$this->Template->iconanchor = "0,0";

				endif;

				if (file_exists(TL_ROOT . '/' . $shadow)) :

					$size = getimagesize(TL_ROOT . '/' . $shadow);

					$this->Template->shadowsize = $size[0] . "," . $size[1];

				else :

					$this->Template->shadowsize = "0,0";

				endif;

				if ($this->dlh_googlemaps_marker_anchor) :

					$this->Template->iconanchor = $this->dlh_googlemaps_marker_anchor;

				else :

					$this->Template->iconanchor = "0,0";

				endif;

			endif;

			if ($this->dlh_googlemaps_infowindow_text) :

				$this->Template->infowindow = true;

				$this->Template->infowindow_auto = $this->dlh_googlemaps_infowindow_auto;

				$this->Template->infowindow_text = ereg_replace('"','"', $this->dlh_googlemaps_infowindow_text);

				if ($this->dlh_googlemaps_infowindow_anchor) :

					$this->Template->infowindow_anchor = $this->dlh_googlemaps_infowindow_anchor;

				else :

					$this->Template->infowindow_anchor = "0,0";

				endif;

			endif;

		endif;

	}

}



?>
</head>
<body>

</body>
</html>

  • 0

#14
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Cześć
Przyłączam się do tematu, konkretnie mam taki problem:
TL wersja 2.6.7, googlemaps TYPOlight_dlh_googlemaps_10008_15,
mam API google maps, wpisuję go w stronie root w ustawieniach na samym dole, następnie w modułach mam coś takiego jak GoogleMap, gdzie korzystam z templatki mod_dlh_googlemaps, wpisuję pola get coordinates i coordinates of map center zapisuję i ....d..a.

Samam mapa jest wyświetlana ale całego świata, jakby nie widzi współprzędnych które mnie interesują, z drugiej strony w źródle strony widzę że API i koordynaty wpisuje dobrze:

div class="mod_dlh_googlemaps block" style="text-align:center;">

<div class="dlh_googlemap block" id="dlh_googlemap_10" style="width:300px;height:300px;display:block;"></div>

<script src="http://maps.google.com/maps?file=api&v=2&key=b3TVJA&sensor=false" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function loaddlh_googlemap_10() {
	if (GBrowserIsCompatible()) {
		var dlh_googlemap_10 = new GMap2(document.getElementById("dlh_googlemap_10"));
					dlh_googlemap_10.addControl(new GLargeMapControl());
							dlh_googlemap_10.addControl(new GMapTypeControl());
									dlh_googlemap_10.removeMapType(G_HYBRID_MAP);
							dlh_googlemap_10.removeMapType(G_SATELLITE_MAP);
						dlh_googlemap_10.setMapType(G_NORMAL_MAP);
		dlh_googlemap_10.setCenter(new GLatLng(50.852242,20.6234801), 4);
					}
}
window.setTimeout("loaddlh_googlemap_10()", 500);
//]]>
</script>
</div>

Czy ktoś mógłby mi podpowiedzieć co może być nie tak??

Dzięki z góry

Pozdrawiam
  • 0

#15
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Sprawa rozwiązana,
winny wszystkiemu zoomfactor :)

Teraz działa całkiem całkiem :)

Pozdrawiam
  • 0

#16
motorola

motorola

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 85 postów
a w jaki sposob dodac wiecej niz jeden marker?
  • 0

#17
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

a w jaki sposob dodac wiecej niz jeden marker?

Jakoś tak
var ikona1 = new GIcon();   
ikona1.image = "http://www.google.com/intl/en_ALL/mapfiles/markerH.png";   
ikona1.shadow = "http://www.google.com/intl/en_ALL/mapfiles/shadow50.png";   
ikona1.iconSize = new GSize(20, 34);   
ikona1.infoWindowAnchor = new GPoint(16,16);   
ikona1.iconAnchor = new GPoint(16,16);   
ikona1.shadowSize = new GSize(37, 34);   

var ikona2 = new GIcon();   
ikona2.image = "http://www.google.com/intl/en_ALL/mapfiles/markerH.png";   
ikona2.shadow = "http://www.google.com/intl/en_ALL/mapfiles/shadow50.png";   
ikona2.iconSize = new GSize(20, 34);   
ikona2.infoWindowAnchor = new GPoint(16,16);   
ikona2.iconAnchor = new GPoint(16,16);   
ikona2.shadowSize = new GSize(37, 34);   

map.enableContinuousZoom();
var punkt  = new GLatLng(xxx);   
var marker = new GMarker(punkt,{icon: ikona1, ikona2});
map.addOverlay(marker);

  • 0

Codefog - Contao web development


#18
motorola

motorola

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 85 postów

a w jaki sposob dodac wiecej niz jeden marker?

Jakoś tak
var ikona1 = new GIcon();   
ikona1.image = "http://www.google.com/intl/en_ALL/mapfiles/markerH.png";   
ikona1.shadow = "http://www.google.com/intl/en_ALL/mapfiles/shadow50.png";   
ikona1.iconSize = new GSize(20, 34);   
ikona1.infoWindowAnchor = new GPoint(16,16);   
ikona1.iconAnchor = new GPoint(16,16);   
ikona1.shadowSize = new GSize(37, 34);   

var ikona2 = new GIcon();   
ikona2.image = "http://www.google.com/intl/en_ALL/mapfiles/markerH.png";   
ikona2.shadow = "http://www.google.com/intl/en_ALL/mapfiles/shadow50.png";   
ikona2.iconSize = new GSize(20, 34);   
ikona2.infoWindowAnchor = new GPoint(16,16);   
ikona2.iconAnchor = new GPoint(16,16);   
ikona2.shadowSize = new GSize(37, 34);   

map.enableContinuousZoom();
var punkt  = new GLatLng(xxx);   
var marker = new GMarker(punkt,{icon: ikona1, ikona2});
map.addOverlay(marker);




ale w sensie w ktorym miejscu? w 'Additional parameters'? -bo jak tam dodaje, to nie trybi...
  • 0

#19
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Ja mam to w właśnie w Additional parameters, ale to TYPOlight jeszcze w wersji 2.5 :P
  • 0

Codefog - Contao web development


#20
motorola

motorola

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 85 postów
okay, w moim przypadku trzeba bylo dodac w additional parameters nastepujacy sposob dwie pinezki:

var dlh_googlemap_11_point = new GLatLng(52.1868046,21.0265829);
			var dlh_googlemap_11_icon = new GIcon(G_DEFAULT_ICON);
						dlh_googlemap_11_marker = new GMarker(dlh_googlemap_11_point, dlh_googlemap_11_icon);
			dlh_googlemap_11.addOverlay(dlh_googlemap_11_marker);
							dlh_googlemap_11_icon.infoWindowAnchor = new GPoint(0,0);
				GEvent.addListener(dlh_googlemap_11_marker, "click", function() { dlh_googlemap_11_marker.openInfoWindowHtml("Tutaj adresobszerny i dlugiplus telefon"); });
												
		var dlh_googlemap_12_point = new GLatLng(52.200222,21.0474058);
			var dlh_googlemap_11_icon = new GIcon(G_DEFAULT_ICON);
						dlh_googlemap_12_marker = new GMarker(dlh_googlemap_12_point, dlh_googlemap_11_icon);
			dlh_googlemap_11.addOverlay(dlh_googlemap_12_marker);
							dlh_googlemap_11_icon.infoWindowAnchor = new GPoint(0,0);
				GEvent.addListener(dlh_googlemap_12_marker, "click", function() { dlh_googlemap_12_marker.openInfoWindowHtml("Szkoła Podstawowa nr 87 "); });
dlh_googlemap_12_marker.openInfoWindowHtml("Szkoła Podstawowa nr 87 ");

w kazdym dzieki Kamil, jeszcze raz :)
- moze wkoncu skoncze ta strone
  • 0




3 użytkowników czyta ten temat

0 użytkowników, 3 gości, 0 anonimowych użytkowników