Subversion Repositories Applications.papyrus

Rev

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

Rev Author Line No. Line
1461 alexandre_ 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
// +------------------------------------------------------------------------------------------------------+
1539 alexandre_ 22
// CVS : $Id: formulaire.fonct.google.php,v 1.3 2007-08-27 12:20:06 alexandre_tb Exp $
1461 alexandre_ 23
/**
24
* Formulaire
25
*
26
* Les fonctions et script specifique a un carto google
27
*
28
*@package api/formulaire
29
//Auteur original :
30
*@author        Aleandre GRANIER <alexandre@tela-botanica.org>
31
*@copyright     Tela-Botanica 2000-2007
1539 alexandre_ 32
*@version       $Revision: 1.3 $
1461 alexandre_ 33
// +------------------------------------------------------------------------------------------------------+
34
*/
35
 
36
$script = '
37
    // Variables globales
38
    var map = null;
39
	var geocoder = null;
2149 mathias 40
	var marker = null;
41
	var flat = null;
42
    var flon = null;
43
 
1461 alexandre_ 44
    function load() {
2149 mathias 45
		flat = document.getElementById("latitude");
46
	    flon = document.getElementById("longitude");
1461 alexandre_ 47
 
2149 mathias 48
		var optionsGoogleMapsv3 = {
49
			// On centre la carte sur le languedoc roussillon
50
			center: new google.maps.LatLng(43.84245116699036, 3.768310546875),
51
			zoom: 7,
52
			mapTypeId: google.maps.MapTypeId.G_HYBRID_MAP,
53
			mapTypeControl: true,
54
			scaleControl: true
55
		};
56
	    map = new google.maps.Map(document.getElementById("map"), optionsGoogleMapsv3);
57
 
58
	    google.maps.event.addListener(map, "click", function(event) {
59
			if (marker != null) {
60
				marker.setMap(null);
61
				marker = null;
62
	    	}
63
			// On ajoute un marqueur a l endroit du clic et on place les coordonnees dans les champs latitude et longitude
64
			marker = event.overlay;
65
	      	marker = new google.maps.Marker({
66
				position: event.latLng,
67
				draggable: true,
68
				map: map
69
			});
70
	      	google.maps.event.addListener(marker, "dragend", function () {
71
            	coordMarker = marker.getPosition() ;
72
            	flat.value = coordMarker.lat();
73
            	flon.value = coordMarker.lng();
74
          	});
75
          	setLatLonForm(marker);
76
    	});';
77
		if ($formtemplate->getElementValue ('latitude') != '' && $formtemplate->getElementValue('longitude') != '') {
78
			$script .= '
79
				point = new google.maps.LatLng('.$formtemplate->getElementValue('latitude').', '.$formtemplate->getElementValue('longitude').');
80
				marker = new google.maps.Marker({
81
					position: point,
82
					draggable: true,
83
					map: map
84
				});
85
		      	google.maps.event.addListener(marker, "dragend", function () {
86
	            	coordMarker = marker.getPosition() ;
87
	            	flat.value = coordMarker.lat();
88
	            	flon.value = coordMarker.lng();
89
	          	});
90
				map.setCenter(point);
91
			' ;
92
		}
93
	    $script .= 'geocoder = new google.maps.Geocoder();
94
	};
95
	function showAddress() {
96
		var adresse = document.getElementById("bf_adresse").value;
97
    	var ville = "";
98
	  	if (document.getElementById("bf_ville")) {
99
	  		ville = document.getElementById("bf_ville").value ;
100
	  	}
101
	  	var cp = document.getElementById("bf_cp_lieu_evenement").value ;
102
	    var pays;
103
	  	if (document.getElementById("liste30")) {
104
	  		var selectIndex = document.getElementById("liste30").selectedIndex;
105
	  		pays = document.getElementById("liste30").options[selectIndex].text ;
106
	  	} else {
107
	  		pays = document.getElementById("bf_pays").value;
108
	  	}
109
	  	var address = adresse + \' \' + \' \' + cp + \' \' + ville + \' \' +pays ;
110
	  	if (geocoder) {
111
	    	geocoder.geocode({
112
	    		address: address
113
	    	}, function(result, status) {
114
	    		 if (status != google.maps.GeocoderStatus.OK) {
115
    				alert(address + " not found");
116
  				} else {
117
	    			marker.setMap(null);
118
	    			marker = null;
119
          			//map.setCenter(point, 13);
120
	    			map.fitBounds(result[0].geometry.viewport);
121
          			marker = new google.maps.Marker({
122
	    				position: result[0].geometry.location,
123
	    				draggable: true,
124
	    				map: map
125
					});
126
          			google.maps.event.addListener(marker, "dragend", function () {
127
  						coordMarker = marker.getPosition() ;
128
	  					flat.value = coordMarker.lat();
129
	  					flon.value = coordMarker.lng();
130
					});
131
          			setLatLonForm(marker);
132
          			//marker.openInfoWindowHtml(address+ "'.BAZ_GOOGLE_MSG.'");
133
        		}
134
      		});
135
  		}
136
	}
137
	function setLatLonForm(marker) {
138
  		coordMarker = marker.getPosition() ;
139
  		flat.value = coordMarker.lat();
140
  		flon.value = coordMarker.lng();
141
	}
1461 alexandre_ 142
';
143
 
144
/*
145
* +--Fin du code ----------------------------------------------------------------------------------------+
146
*
147
* $Log: not supported by cvs2svn $
1539 alexandre_ 148
* Revision 1.2  2007-07-04 11:52:55  alexandre_tb
149
* fonctionne mais en cours de développement
150
*
1510 alexandre_ 151
* Revision 1.1  2007-06-25 09:52:36  alexandre_tb
152
* version intiale -- en cours
1461 alexandre_ 153
*
1510 alexandre_ 154
*
1461 alexandre_ 155
* +-- Fin du code ----------------------------------------------------------------------------------------+
156
*/