Subversion Repositories Applications.bazar

Rev

Rev 471 | Rev 476 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
468 mathias 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: bazar.fonct.google.php,v 1.1 2007-06-04 15:24:00 alexandre_tb Exp $
23
/**
24
* Formulaire
25
*
26
* Les fonctions et script specifique a un carto google
27
*
28
*@package bazar
29
//Auteur original :
30
*@author        Aleandre GRANIER <alexandre@tela-botanica.org>
31
*@copyright     Tela-Botanica 2000-2007
32
*@version       $Revision: 1.1 $
33
// +------------------------------------------------------------------------------------------------------+
34
*/
35
 
36
$script = '
37
// Variables globales
38
    var map = null;
39
	var geocoder = null;
40
	var marker = null;
41
	var flat = null;
42
    var flon = null;
43
 
44
 // cette fonction peut d�j� �tre pr�sente
45
                // fonction portable pour ajout de listeners
46
                function addListener(element, baseName, handler)
47
                {
48
                        if (element.addEventListener) {
49
                                element.addEventListener(baseName, handler, false) ;
50
                        } else if (element.attachEvent) {
51
                                element.attachEvent(\'on\'+baseName, handler) ;
52
                        }
53
                }
54
    addListener(window,\'load\',loadMap) ;
55
    function loadMap() {
56
		flat = document.getElementById("latitude");
57
	    flon = document.getElementById("longitude");
58
 
59
		var optionsGoogleMapsv3 = {
60
			// On centre la carte sur le languedoc roussillon
61
			center: new google.maps.LatLng(43.84245116699036, 3.768310546875),
62
			zoom: 7,
63
			mapTypeId: google.maps.MapTypeId.G_HYBRID_MAP,
475 mathias 64
			mapTypeId: "OSM",
65
			mapTypeControlOptions: {
66
			mapTypeIds: ["OSM",
67
				google.maps.MapTypeId.ROADMAP,
68
				google.maps.MapTypeId.HYBRID,
69
				google.maps.MapTypeId.SATELLITE,
70
				google.maps.MapTypeId.TERRAIN]
71
			},
468 mathias 72
			mapTypeControl: true,
73
			scaleControl: true
74
		};
75
	    map = new google.maps.Map(document.getElementById("map"), optionsGoogleMapsv3);
475 mathias 76
		map.mapTypes.set("OSM", new google.maps.ImageMapType({
77
 			getTileUrl: function(coord, zoom) {
78
 				return "http://osm.tela-botanica.org/tile/" + // cache de tuiles avec nginx
79
 				zoom + "/" + coord.x + "/" + coord.y + ".png";
80
 			},
81
 			tileSize: new google.maps.Size(256, 256),
82
 			isPng: true,
83
 			alt: "OpenStreetMap",
84
 			name: "OSM",
85
			maxZoom: 19
86
		}));
468 mathias 87
 
88
	    google.maps.event.addListener(map, "click", function(event) {
89
			if (marker != null) {
90
				marker.setMap(null);
91
				marker = null;
92
	    	}
93
			// On ajoute un marqueur a l endroit du clic et on place les coordonnees dans les champs latitude et longitude
94
			marker = event.overlay;
95
	      	marker = new google.maps.Marker({
96
				position: event.latLng,
97
				draggable: true,
98
				map: map
99
			});
100
	      	google.maps.event.addListener(marker, "dragend", function () {
101
            	coordMarker = marker.getPosition() ;
102
            	flat.value = coordMarker.lat();
103
            	flon.value = coordMarker.lng();
104
          	});
105
          	setLatLonForm(marker);
106
    	});';
107
		if ($formtemplate->getElementValue ('latitude') != '' && $formtemplate->getElementValue('longitude') != '') {
108
			$script .= '
109
				point = new google.maps.LatLng('.$formtemplate->getElementValue('latitude').', '.$formtemplate->getElementValue('longitude').');
110
				marker = new google.maps.Marker({
111
					position: point,
112
					draggable: true,
113
					map: map
114
				});
115
		      	google.maps.event.addListener(marker, "dragend", function () {
116
	            	coordMarker = marker.getPosition() ;
117
	            	flat.value = coordMarker.lat();
118
	            	flon.value = coordMarker.lng();
119
	          	});
120
			map.setCenter(point);
121
			' ;
122
		}
123
	    $script .= 'geocoder = new google.maps.Geocoder();
124
	};
125
	function showAddress() {
126
		var adresse = document.getElementById("bf_adresse").value;
127
    	var ville = "";
128
	  	if (document.getElementById("bf_ville")) {
129
	  		ville = document.getElementById("bf_ville").value ;
130
	  	}
131
	  	var cp = document.getElementById("bf_cp_lieu_evenement").value ;
132
	    var pays;
133
	  	if (document.getElementById("liste30")) {
134
	  		var selectIndex = document.getElementById("liste30").selectedIndex;
135
	  		pays = document.getElementById("liste30").options[selectIndex].text ;
136
	  	} else {
137
	  		pays = document.getElementById("bf_pays").value;
138
	  	}
139
	  	var address = adresse + \' \' + \' \' + cp + \' \' + ville + \' \' +pays ;
140
	  	if (geocoder) {
141
	    	geocoder.geocode({
142
	    		address: address
143
	    	}, function(result, status) {
144
	    		 if (status != google.maps.GeocoderStatus.OK) {
145
    				alert(address + " not found");
146
			} else {
147
			marker.setMap(null);
148
			marker = null;
149
			//map.setCenter(point, 13);
150
			map.fitBounds(result[0].geometry.viewport);
151
			marker = new google.maps.Marker({
152
				position: result[0].geometry.location,
153
				draggable: true,
154
				map: map
155
				});
156
			google.maps.event.addListener(marker, "dragend", function () {
157
					coordMarker = marker.getPosition() ;
158
					flat.value = coordMarker.lat();
159
					flon.value = coordMarker.lng();
160
				});
161
			setLatLonForm(marker);
162
			//marker.openInfoWindowHtml(address+ "'.BAZ_GOOGLE_MSG.'");
163
		}
164
      		});
165
  		}
166
	}
167
	function setLatLonForm(marker) {
168
  		coordMarker = marker.getPosition() ;
169
  		flat.value = coordMarker.lat();
170
  		flon.value = coordMarker.lng();
171
	}
172
';
173
 
174
 
175
 
176
/*
177
* +--Fin du code ----------------------------------------------------------------------------------------+
178
*
179
* $Log: not supported by cvs2svn $
180
* +-- Fin du code ----------------------------------------------------------------------------------------+
181
*/