Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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 hmm 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

 

Pied de page des forums

Powered by FluxBB