[Réglé] Créer des points spécifiques sur une carte google maps

Aide aux auteurs d'extensions pour phpBB

Modérateur : Équipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com
Répondre
Avatar du membre
stone23
Roi des posts
Roi des posts
Messages : 625
Enregistré le : 31 mai 2008 à 13:50
Localisation : Entre la chaise et le clavier
Contact :

Créer des points spécifiques sur une carte google maps

Message par stone23 »

Salut à tous,
Alors voilà, quand mon forum était en version 3.0 mon co-admin avait développé un script pour ajouter des coordonnées exactes sur google maps.

Ce que je souhaiterais faire avec la version actuelle...

Il avait d'abord créé un BBcode comme suit :

Utilisation:

Code : Tout sélectionner

[Map]{SIMPLETEXT1}[/Map]
Code HTML de remplacement:

Code : Tout sélectionner

<iframe src ="map.php?addr={SIMPLETEXT1}" width="640" height="480" scrolling="no"></iframe>
Ligne d'aide:

Code : Tout sélectionner

[Map]Entrer une adresse où les coordonnées (lat,long)[/Map]
Régler pour ne pas afficher le bbcode.

Nouveaux fichiers à placer à la racine du site: (racine du site et non racine du forum)
localisation.html

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>Google Maps - phpBB 3</title>
		<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
		<style></style>
		<!-- localhost -->
		<!--<script src="http://maps.google.com/maps?file=api&v=2&key=        ABQIAAAA6D5_O3drUBfeyXb9fbffURTRQ1q-9n7AiJmM4VDOgkekAD9aLBTCOK7bfexY7HEOHSdoJbQ5s6ocvg" type="text/javascript"></script>-->
		<!-- .fr -->
		<!--<script src="http://maps.google.com/maps?file=api&v=2&key=        ABQIAAAA6D5_O3drUBfeyXb9fbffURTRQ1q-9n7AiJmM4VDOgkekAD9aLBTCOK7bfexY7HEOHSdoJbQ5s6ocvg" type="text/javascript"></script>-->
		<!-- .eu -->
		<script src="http://maps.google.com/maps?file=api&v=2&key=    ABQIAAAA6D5_O3drUBfeyXb9fbffURTRQ1q-9n7AiJmM4VDOgkekAD9aLBTCOK7bfexY7HEOHSdoJbQ5s6ocvg" type="text/javascript"></script>
		<script src="google_maps.js" type="text/javascript"></script>
		<script type="text/javascript">
			// the variable of Google Maps
			var map = null;
			
			function init()
			{
				map = new phpBB3_googleMaps();
				map.initSelect();
			}
			
			function searchCity()
			{
				if (map == null) {
					alert('Erreur : La carte n\'est pas chargé!');
					return false;
				}
				
				return map.searchCity('city');
			}
		</script>
	</head>
	<body onload="init()" onunload="GUnload()">
		<div id="google_maps" style="width: 622px; height: 373px;"></div>
    <p>Pour trouver les coordonnées d'un lieu, naviguez dans la carte à l'aide du zoom et des flèches, au besoin affichez la vue satellite, quand vous êtes à l'endroit dont vous voulez relever les coordonnées, cliquez sur cet endroit précis et une popup s'ouvrira avec les coordonnées ainsi que les balises. Il suffit à présent de sélectionner cette ligne et de la copier afin de pouvoir la coller dans la zone d'édition de votre message.</p>
</body>
</html>
Google_maps.js

Code : Tout sélectionner

function phpBB3_googleMaps()
{
	// initialisation des variables
	this.map			= null;
	this.geoCoder		= null;
	this.defaultLat	= 46.11;
	this.defaultLng	= 1.99;
	this.defaultZoom	= 9;
	this.xmlFile		= 'markers.xml';
	this.forumUrl		= 'http://forum.framasoft.org/';
	
	// vérifie que le navigateur est compatible avec Google Maps
	if  (!GBrowserIsCompatible()) {
		alert("Votre navigateur n'est pas compatible avec Google Maps!");
	}
	
	// crée une carte avec un contrôle du zoom
	this.map = new GMap2(document.getElementById("google_maps"));
	this.map.addControl(new GLargeMapControl());
	this.map.addControl(new GMapTypeControl());
	
	// fontion permettant d'initialiser les variables
	this.init = function(lat, lng, zoom, forumUrl)
	{
		this.defaultLat	= lat;
		this.defaultLng	= lng;
		this.defaultZoom	= zoom;
		this.forumUrl		= forumUrl;
	}
	
	// fonction permettant d'initialiser la carte 
	this.initView = function()
	{
		var position;
		
		position = new GLatLng(this.defaultLat, this.defaultLng);
		this.map.setCenter(position, this.defaultZoom);
	}
	
	// fonction permettant d'initialiser la carte permettant de sélectionner sa localisation
	this.initSelect = function()
	{
		var position;
		
		position = new GLatLng(this.defaultLat, this.defaultLng);
		this.map.setCenter(position, this.defaultZoom);
		
		// variable permettant la recherche d'une localisation
		this.geoCoder = new GClientGeocoder();
		
		// création d'un évenement permettant de récupérer la localisation de l'utilisateur
		GEvent.addListener(this.map, 'click', function(overlay, latlng) {
										if (overlay) {
											return;
										}
										alert ('[map]' + latlng.lat() + ' , ' + latlng.lng()+ '[/map]');
									}
						);
	}
	

	// fonction permettant d'avoir des variables non null
	this.blankIfNull = function(obj)
	{
		if (obj == null) {
			obj = "";
		}
		
		return obj;
	}
	
	
	
	
}
Modification de fichier:
Ouvrir styles/automne/template/posting_buttons.html
Chercher:

Code : Tout sélectionner

</div>
<!-- ENDIF -->
Ajouter avant sur une nouvelle ligne:

Code : Tout sélectionner

	 <input type="button" class="button2" name="Map" value="Map" style="width: 40px"    onClick=window.open("https://encreuse.net/map/localisation.html","YaCast","top=50,left=50,screenx=50,screeny=50,scrollbars=no,width=640,height=480") title="Pour integrer une carte Google Maps" />
Cette modification permet d'ouvrir une popup à partir du bouton "Map". Dans cette popup, quand on clique sur un point, il ouvre une seconde popup avec les coordonnées et les balises.

Je vous mets les fichiers en question ici

Voilà les éléments que j'ai et ça serait pour ajouter un BBcode ou un bouton pour insérer un point d’intérêt ou une position pour un rassemblement par exemple...

Merci d'avance de votre aide.
Modifié en dernier par stone23 le 18 août 2023 à 20:04, modifié 1 fois.
encreuse.net
Version forum : 3.3.10
Version php : 8.2.9
Avatar du membre
cabot
Equipe site
Equipe site
Messages : 28019
Enregistré le : 13 févr. 2011 à 19:42
Localisation : Rarement sur la plaque
Contact :

Créer des points spécifiques sur une carte google maps

Message par cabot »

Hello,

Tu sais que tu peux créer un BBCode tout simple permettant de saisir une requête ?

Code : Tout sélectionner

[map]{TEXT}[/map]

Code : Tout sélectionner

<iframe src="https://maps.google.com/maps?q={TEXT}&hl=fr-FR&z=14&ie=UTF8&iwloc=B&output=embed" style="max-width: 600px; width: 100%; aspect-ratio: 4/3;" loading="lazy"></iframe>

Code : Tout sélectionner

[map]Saisissez un lieu, une adresse, une recherche ou des coordonnées[/map]
Exemples :

Code : Tout sélectionner

[map]mairie dijon[/map]
[map]37 promenade de la plage cagnes[/map]
[map]boulangeries la rochelle[/map]
[map]46.17096398283813, 1.8713188306861988[/map]
Avatar du membre
stone23
Roi des posts
Roi des posts
Messages : 625
Enregistré le : 31 mai 2008 à 13:50
Localisation : Entre la chaise et le clavier
Contact :

Créer des points spécifiques sur une carte google maps

Message par stone23 »

Salut Cabot,
J'ai testé mais ça ne fonctionne pas.
Il y a des conditions particulières auprès de Google pour que ça fonctionne ?
encreuse.net
Version forum : 3.3.10
Version php : 8.2.9
Avatar du membre
cabot
Equipe site
Equipe site
Messages : 28019
Enregistré le : 13 févr. 2011 à 19:42
Localisation : Rarement sur la plaque
Contact :

Créer des points spécifiques sur une carte google maps

Message par cabot »

Nope, rien à faire du côté de Google.
Mais il y avait une typo dans le BBCode (je viens de la corriger), remplace :

Code : Tout sélectionner

[map]{TEXT}[/customap][/map]
Par :

Code : Tout sélectionner

[map]{TEXT}[/map]
Avatar du membre
stone23
Roi des posts
Roi des posts
Messages : 625
Enregistré le : 31 mai 2008 à 13:50
Localisation : Entre la chaise et le clavier
Contact :

Créer des points spécifiques sur une carte google maps

Message par stone23 »

Super Cabot, ça fonctionne et c'est beaucoup plus simple avec un BBcode :+1:
encreuse.net
Version forum : 3.3.10
Version php : 8.2.9
Répondre

Retourner vers « Aide au développement »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité