#1 Thu 25 July 2013 13:09
- araking
- Participant actif
- Date d'inscription: 8 Jul 2013
- Messages: 83
[openlayers] addFeatures
Bonjour,
j'ai un problème dans la de dessiner mon point aprés la géolocalistion voici le code:
Code:
function loadDemo() { if(navigator.geolocation) { document.getElementById("support").innerHTML = "I'll find you!"; navigator.geolocation.getCurrentPosition(updateLocation, handleLocationError, {timeout:100000}); } else { document.getElementById("support").innerHTML = "Browser is so old"; }} function handleLocationError(){ switch(error.code) { case error.PERMISSION_DENIED: x.innerHTML="User denied the request for Geolocation." break; case error.POSITION_UNAVAILABLE: x.innerHTML="Location information is unavailable." break; case error.TIMEOUT: x.innerHTML="The request to get user location timed out." break; case error.UNKNOWN_ERROR: x.innerHTML="An unknown error occurred." break; } } function updateLocation(position) { var latitudeg = position.coords.latitude; var longitudeg = position.coords.longitude; var accuracy = position.coords.accuracy; document.getElementById("latitude").innerHTML = latitudeg;//works document.getElementById("longitude").innerHTML = longitudeg;//works document.getElementById("accuracy").innerHTML = "This location is accurate within " +accuracy + " meters." var lonLat = new OpenLayers.LonLat(longitudeg,latitudeg).transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913")); alert(lonLat); var pointg = new OpenLayers.Geometry.Point(longitudeg, latitudeg); pointg.transform( new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913") ); var feature_point_g = new OpenLayers.Feature.Vector(pointg); alert(pointg.lat);// retourne undifined alert(feature_point_g);//retourne [object Object] map.addFeatures([feature_point_g]);//retourne map.addFeatures is not a fuction map.refresh({force:true}); }
Hors ligne
#2 Thu 25 July 2013 16:39
- araking
- Participant actif
- Date d'inscription: 8 Jul 2013
- Messages: 83
Re: [openlayers] addFeatures
pas d'aide le problème vient de
var feature_point_g = new OpenLayers.Feature.Vector(pointg);
ça retourne
[object Object]
Dernière modification par araking (Thu 25 July 2013 16:50)
Hors ligne
#3 Thu 25 July 2013 18:31
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: [openlayers] addFeatures
Bonjour,
var feature_point_g = new OpenLayers.Feature.Vector(pointg);
ça retourne
[object Object]
Je pense que c'est normal, tu fais un alert d'un objet OpenLayers.Feature.Vector, qui est de type {Object}
Si tu veux tester ta variable il vaut mieux faire un alert sur un attribut texte ou nombre de ta variable, par exemple :
Code:
alert (feature_point_g.geometry.toString());
Vianney Dugrain
Hors ligne
#4 Thu 25 July 2013 18:42
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: [openlayers] addFeatures
Je pense que le problème vient plutot du fait que tu fais appel à une fonction qui n'existe pas :
Code:
map.addFeatures([feature_point_g]);//retourne map.addFeatures is not a fuction
Ta variable map est-elle un objet OpenLayers.Map ?
Attention car addFeatures est une fonction de l'objet OpenLayers.Layer.Vector
Vianney Dugrain
Hors ligne
#5 Thu 25 July 2013 19:01
- araking
- Participant actif
- Date d'inscription: 8 Jul 2013
- Messages: 83
Re: [openlayers] addFeatures
Bonjour,
merci pour l'info,toString() me montre que ça marche bien, j'ai changé un peu mon code en créant un vecteur
vectors = new OpenLayers.Layer.Vector("Vector Layer");
vectors.addFeatures([feature_point_g]);//
map.addLayer(vectors);
aucun bug n'est détécté par firebug mais mon point ne s'affiche pas, est ce que j'ai oublié quelque chose pour que mon point se dessine?
Hors ligne
#6 Fri 26 July 2013 13:36
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: [openlayers] addFeatures
La couche "Vector Layer" est-elle bien présente dans ton gestionnaire de couches ? Si oui, il peut s'agir d'un problème de projection, ton feature est bien créé mais il se promène quelque part à l'autre bout de la planète...
Vianney Dugrain
Hors ligne
#7 Fri 26 July 2013 15:52
- araking
- Participant actif
- Date d'inscription: 8 Jul 2013
- Messages: 83
Re: [openlayers] addFeatures
Bonjour,
Effectivement ,aprés un clic sur le bouton de localisation, la couche s'ajoute avec les overlay layers,peut être que c'est un problème de projection,mais comment je peux le résoudre surtout que mon feature a comme prjojection EPSG:4326 avec la créaton de mon map j'ai ajouté le paramètre Openlayers.Bounds
Dernière modification par araking (Fri 26 July 2013 15:52)
Hors ligne
#8 Fri 26 July 2013 16:43
- araking
- Participant actif
- Date d'inscription: 8 Jul 2013
- Messages: 83
Re: [openlayers] addFeatures
Bonjour,
j'ai enlevé EPSG:900913 et ça marche mais elle n'est pas précise des kilomètres à ma position !
Dernière modification par araking (Fri 26 July 2013 17:13)
Hors ligne