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 Mon 17 February 2014 17:51

oceane22
Juste Inscrit !
Date d'inscription: 17 Feb 2014
Messages: 2

[openlayers] Tracer ligne entre deux marker

Bonjour, et merci à tous les contributeurs présent sur ce forum.

Je suis débutante sur openlayer et j'ai un problème :

J'ai un shape file avec des lignes représentant des projets de routes. Je l'ai ajouté via Openlayers en KML sur un fond carto OSM.
J'ai crée des markers sur ces lignes, et je voudrais relier ces points en suivant le tracé des lignes de mon KML. J'ai essayée avec la classe linestring mais il ne me trace que des lignes droites.

De la même manière, si j'ajoute un marker est-il possible de modifier le segment et de relier les 3 markers (de la même façon que le calcul d'itinéraire de google map : https://developers.google.com/maps/d...ions-draggable) ?

D'autres part, le temps d'affichage de mon kml est assez lent (plusieurs secondes), connaissez vous d’accélérer le temps d'affichage, ou existe-il un autre format plus rapide ?

Merci pour votre aide

Hors ligne

 

#2 Tue 18 February 2014 09:36

Tony VINCENT
Participant actif
Lieu: Poitiers
Date d'inscription: 13 Jan 2010
Messages: 86

Re: [openlayers] Tracer ligne entre deux marker

Bonjour,

Pourrais-tu nous en dire un peu plus sur ton but final ?
Cela pourra éventuellement nous aider pour te donner des pistes.

Comment as-tu créé tes markers ? Directement dans ton code ou bien avec l'élément de controle DrawFeature.

Le but de la class LineString est bien de tracé une ligne droite entre de point, il ne gère pas la notion d’itinéraire. Donc le résultat que tu obtiens est bien celui que tu lui as demandé de faire.

Si tu veux tracer un itinéraire entre deux points, il faut que tu regarde du côté de :
- l'API Google Maps "Direction" (https://developers.google.com/maps/docu … irections/)
- PgRouting : utilisation avec une base de données Postgres/PostGIS (http://pgrouting.org/)
- OSMR (http://project-osrm.org/)

En espérant que cela puisse déjà vous faire avancer.


Tony

Hors ligne

 

#3 Tue 18 February 2014 11:18

oceane22
Juste Inscrit !
Date d'inscription: 17 Feb 2014
Messages: 2

Re: [openlayers] Tracer ligne entre deux marker

Bonjour et merci beaucoup pour votre réponse.

Le but serait de faire un calcul d'itinéraire en se basant sur un shapefile avec mes routes.

J'ai chargé ce shape file (avec près de 800 lignes) en kml sur un fond osm et google map. D’ailleurs l'affichage de mon kml est assez lent, pensez vous qu'un autre format serait plus rapide ?

Ensuite je créer des markers avec cette ligne de code directement dans mon fichier html :


markers = new OpenLayers.Layer.Markers( "Markers" );
markers.id = "Markers";
map.addLayer(markers);

map.events.register("click", map, function(e) {
      //var position = this.events.getMousePosition(e);
      var position = map.getLonLatFromPixel(e.xy);
      var size = new OpenLayers.Size(21,25);
   var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
   var icon = new OpenLayers.Icon('images/mark.png', size, offset);   
   var markerslayer = map.getLayer('Markers');

   markerslayer.addMarker(new OpenLayers.Marker(position,icon));

   });

Alors certes, les markers sont crées, mais uniquement sur la carte, pas sur mes lignes. Je pense pas que je prenne le problème du bon coté.

Je viens de regarder pgrouting, et je pense que je vais me tourner vers cette solutions (http://workshop.pgrouting.org/chapters/ … estination)

Si j'ai bien compris, il va falloir que je prépare mon fichier sous postgresql (ajouter un id, les coordonnées x1 et x2 de chaque nœud, le poids?) le transformer en wms via postgis et geoserver, et l'inclure dans mon html ou je pourrais directement choisir mes points de départ et d'arrivée...
Cependant si je suis ce protocole, est-ce que ce sera bien mes lignes qui seront "clicable" pour choisir mes points de départ et d'arrivée ?

Encore merci pour votre réponse.

Hors ligne

 

Pied de page des forums

Powered by FluxBB