Précédent   Forum des professionnels en informatique > Applications > SIG : Système d'information Géographique > IGN API Géoportail
IGN API Géoportail Forum d'entraide sur l'API Géoportail développé par IGN
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2012, 11h29   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2011
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 22
Points : 13
Points : 13
Par défaut Access aux coordonnées d'un point d'une trace GPX

Bonjour,
Je développe une application en VB permettant de gérer ses traces GPS et permettre la visualisation de celles ci sur fond de carte IGN.
Jusque la aucun problème, j'affiche bien ma trace, tout fonctionne correctement.
Le problème c'est que je n'ai jamais développé en JS et certaines choses sont un peu obscures ...
Je voudrais simplement récupérer les coordonnées d'un point d'une trace lorsque qqun clique dessus.
J'ai un "listener" qui réagit au click (qui fonctionne), il me manque simplement la méthode d'accès aux coordonnées et malgré des heures de recherches je n'ai pas trouvé l'info.
Dans un autre post il est écrit, je cite :

Il est possible d'accéder au différents points de la couche en utilisant la propriété features du layer GPX.
Ainsi, si on déclare une couche gpx :
var gpx= viewer.getMap().addLayer("GPX","Balade", ...);
On récupère les points avec la propriété features :
var tabPoint = gpx.features;
Le résultat est un tableau de OpenLayers.Features.Vector

Ce qui amène ma question : Comment récupérer les coordonnées d'un point dans un OpenLayers.Features.Vector ?

Désolé je n'ai pas d'exemple en ligne car c'est une appli autonome, mais pour l'instant la partie visualisation est des plus basique avec simplement le chargement d'une ou plusieurs traces basé sur les exemples fournis par l'IGN.

Merci d'avance
superpoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 15h32   #2
Membre habitué
 
Femme zineb
Inscription : mars 2011
Messages : 89
Détails du profil
Informations personnelles :
Nom : Femme zineb
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 89
Points : 120
Points : 120
Bonjour,

Pour afficher les coordonnées des waypoints au clic:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function showCoordinates(f){
	if (f.attributes['typeName']=='wpt') {				
		alert('X:'+f.geometry.x+'  Y:'+f.geometry.y);
	}
}	

var couche_gpx=viewer.getMap().addLayer('GPX', 
	"couche_gpx",
	'parcours.gpx',
	{	
		visibility:true
	},{
		onSelect:showCoordinates
	}
)
zainab_k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 10h03   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2011
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 22
Points : 13
Points : 13
Par défaut Merci !!

Merci beaucoup !, c'est parfait ! exactement ce que je cherchais.
J'ai juste modifié ta fonction pour retourner les coordonnées en latitute et longitude :

Code :
1
2
3
4
5
6
7
8
9
function showCoordinates(f){
	if (f.attributes['typeName']=='wpt') {	
		var mon_point = new OpenLayers.Geometry.Point(f.geometry.x, f.geometry.y);
		var destproj = OpenLayers.Projection.CRS84;
		var sourceproj = VISU.projection;
		mon_point.transform(sourceproj, destproj);
		alert('X:'+mon_point.x+'  Y:'+mon_point.y);
	}
}
superpoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 12h04   #4
Expert Confirmé

 
Homme Didier Richard
Ingénieur cartographe
Inscription : avril 2009
Messages : 2 734
Détails du profil
Informations personnelles :
Nom : Homme Didier Richard
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur cartographe
Secteur : Service public

Informations forums :
Inscription : avril 2009
Messages : 2 734
Points : 3 502
Points : 3 502
?
dgrichard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 12h42   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 4
Points : 4
Par défaut question un peu différente mais liée...

je souhaite afficher un popup pas au click sur un waypoint mais quand le curseur passe sur un feature (track dans ce cas) : pas de click mais seulement récupérer l'évènement qui change le curseur de 'croix' en 'main'... et récupérer au moins l'index du point le plus proche dans la liste des points du feature pour afficher des infos...
Q subsidiaire : possibilité de déclenchement de l'évènement au voisinage (quelques pixels du feature)
Merci...
gcsti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 12h51   #6
Expert Confirmé

 
Homme Didier Richard
Ingénieur cartographe
Inscription : avril 2009
Messages : 2 734
Détails du profil
Informations personnelles :
Nom : Homme Didier Richard
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur cartographe
Secteur : Service public

Informations forums :
Inscription : avril 2009
Messages : 2 734
Points : 3 502
Points : 3 502
Citation:
Envoyé par gcsti Voir le message
je souhaite afficher un popup pas au click sur un waypoint mais quand le curseur passe sur un feature (track dans ce cas) : pas de click mais seulement récupérer l'évènement qui change le curseur de 'croix' en 'main'... et récupérer au moins l'index du point le plus proche dans la liste des points du feature pour afficher des infos...
Très malsain d'ajouter des questions à une discussion "résolue"

La réponse est dans "hover" et le callback onSelect

Citation:
Envoyé par gcsti Voir le message
Q subsidiaire : possibilité de déclenchement de l'évènement au voisinage (quelques pixels du feature)
Merci...
Seul le clic a une tolérance (4 pixels) paramétrable dans OpenLayers.Hander.Feature ...

A ma connaissance, seul OpenLayers.Control.WMSGetFeatureInfo permet le passage de paramètre propriétaires comme radius pour simuler cet tolérance au survol
dgrichard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h11.


 
 
 
 
Partenaires

Hébergement Web