Subversion Repositories eFlore/Applications.cel

Rev

Rev 744 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 744 Rev 747
Line 201... Line 201...
201
var marker;
201
var marker;
202
var osmMapType;
202
var osmMapType;
203
function initialiserCarte() {
203
function initialiserCarte() {
204
	geocoder = new google.maps.Geocoder();
204
	geocoder = new google.maps.Geocoder();
205
	latLng = new google.maps.LatLng(43.577, 3.455);
205
	latLng = new google.maps.LatLng(43.577, 3.455);
-
 
206
	map = new google.maps.Map(document.getElementById('gg-map-carte'), {
-
 
207
		zoom: 9,
-
 
208
		mapTypeId: google.maps.MapTypeId.HYBRID,
-
 
209
		mapTypeControlOptions: {
-
 
210
			mapTypeIds: ['OSM', google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.TERRAIN]}
-
 
211
	});
-
 
212
 
-
 
213
	// Ajout de la couche OSM à la carte
206
	osmMapType = new google.maps.ImageMapType({
214
	osmMapType = new google.maps.ImageMapType({
207
		getTileUrl: function(coord, zoom) {
215
		getTileUrl: function(coord, zoom) {
208
			return "http://tile.openstreetmap.org/" +
216
			return "http://tile.openstreetmap.org/" +
209
			zoom + "/" + coord.x + "/" + coord.y + ".png";
217
			zoom + "/" + coord.x + "/" + coord.y + ".png";
210
		},
218
		},
Line 212... Line 220...
212
		isPng: true,
220
		isPng: true,
213
		alt: "OpenStreetMap",
221
		alt: "OpenStreetMap",
214
		name: "OSM",
222
		name: "OSM",
215
		maxZoom: 19
223
		maxZoom: 19
216
	});
224
	});
217
	map = new google.maps.Map(document.getElementById('gg-map-carte'), {
-
 
218
		zoom: 9,
-
 
219
		center: latLng,
-
 
220
		mapTypeId: google.maps.MapTypeId.ROADMAP,
-
 
221
		mapTypeControlOptions: {
-
 
222
			mapTypeIds: ['OSM', google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.TERRAIN],    
-
 
223
			style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
-
 
224
	});
-
 
225
	
-
 
226
	map.mapTypes.set('OSM', osmMapType);
225
	map.mapTypes.set('OSM', osmMapType);
227
	map.setMapTypeId(google.maps.MapTypeId.HYBRID);
-
 
Line -... Line 226...
-
 
226
	
-
 
227
	// Ajout des limites de communes
-
 
228
	ctaLayer = new google.maps.KmlLayer('http://www.tela-botanica.org/commun/google/map/3/kmz/communes/34.kmz', {preserveViewport: true});
-
 
229
	ctaLayer.setMap(map);
-
 
230
	
228
	
231
	// Définition du marqueur
229
	marker = new google.maps.Marker({
232
	marker = new google.maps.Marker({
230
		position: latLng,
233
		position: latLng,
231
		title: 'Ma station',
234
		title: 'Ma station',
232
		map: map,
235
		map: map,
233
		draggable: true
236
		draggable: true
-
 
237
	});
Line 234... Line 238...
234
	});
238
	deplacerMarker(latLng);
-
 
239
	
-
 
240
	// Tentative de géolocalisation
-
 
241
	if(navigator.geolocation) {	// Try W3C Geolocation (Preferred)
-
 
242
		navigator.geolocation.getCurrentPosition(function(position) {
235
	
243
			(DEBUG) ? console.log("Géolocalisation OK.") : '';
236
	// Update current position info.
244
			latLng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
-
 
245
			deplacerMarker(latLng);
-
 
246
			map.setCenter(latLng);
-
 
247
		}, function() {
-
 
248
			(DEBUG) ? console.log("Géolocalisation échouée.") : '';
-
 
249
		});
-
 
250
	} else { //Browser doesn't support Geolocation
Line 237... Line 251...
237
	mettreAJourMarkerPosition(latLng);
251
		(DEBUG) ? console.log("Navigateur ne supportant pas la géolocalisation. Localisation par défaut.") : '';
238
	geocoderPosition(latLng);
252
	}
239
	
253
	
240
	// Add dragging event listeners.
254
	// Add des évènements concernant le marqueur
Line 241... Line 255...
241
	google.maps.event.addListener(marker, 'dragstart', function() {
255
	google.maps.event.addListener(marker, 'dragstart', function() {
Line 256... Line 270...
256
	google.maps.event.addListener(map, 'click', function(event) {
270
	google.maps.event.addListener(map, 'click', function(event) {
257
		deplacerMarker(event.latLng);
271
		deplacerMarker(event.latLng);
258
	});
272
	});
259
}
273
}
Line -... Line 274...
-
 
274
 
-
 
275
function deplacerMarker(latLon) {
-
 
276
	if (marker != undefined) {
-
 
277
		marker.setPosition(latLon);
-
 
278
		mettreAJourMarkerStatut('Marqueur de station déplacé (clic).');
-
 
279
		mettreAJourMarkerPosition(marker.getPosition());
-
 
280
		geocoderPosition(marker.getPosition());
-
 
281
	}
-
 
282
}
260
 
283
 
261
function geocoderPosition(pos) {
284
function geocoderPosition(pos) {
262
	if (geocoder != undefined) {
285
	if (geocoder != undefined) {
263
		geocoder.geocode({
286
		geocoder.geocode({
264
			latLng: pos
287
			latLng: pos
Line 299... Line 322...
299
 
322
 
300
function mettreAJourMarkerAdresse(str) {
323
function mettreAJourMarkerAdresse(str) {
301
	document.getElementById('marqueur-adresse').innerHTML = str;
324
	document.getElementById('marqueur-adresse').innerHTML = str;
Line 302... Line -...
302
}
-
 
303
 
-
 
304
function deplacerMarker(latLon) {
-
 
305
	if (marker != undefined) {
-
 
306
		marker.setPosition(latLon);
-
 
307
		mettreAJourMarkerStatut('Marqueur de station déplacé (clic).');
-
 
308
		mettreAJourMarkerPosition(marker.getPosition());
-
 
309
		geocoderPosition(marker.getPosition());
-