2010-11-04 11 views
4

Je suis en train de créer une ligne courbe entre deux entités en utilisant OpenLayers 2.10. J'ai peur d'avoir trouvé un bug, ou je ne comprends tout simplement pas ce que fait la géométrie de la courbe. Le OpenLayers docs say: "Une courbe est un point multipoint, dont les points sont supposés être connectés.A cette fin, nous fournissons une fonction 'getLength()', qui itère à travers les points, en additionnant les distances entre eux." OK, so far so good ...OpenLayers Curve Geometry ne fonctionne pas comme prévu

var curve = new OpenLayers.Feature.Vector(
    new OpenLayers.Geometry.Curve([point1, point2, point3]), null, style 
); 
layer.addFeatures([curve]); 

Si je remplace Curve avec LineString, LinearRing ou Multipoint, les caractéristiques sont rendus comme prévu. Mais quand j'utilise Curve, précisément squat est rendu sur la carte. Pire encore, appeler la méthode getLength de la géométrie «fonctionne», dans le sens où j'obtiens une réponse saine qui obtient des échelles avec la distance entre les points. Je ne sais pas si la réponse est correcte, mais OL a certainement créé une représentation interne de la courbe.

J'ai testé dans Chrome et Firefox sous Linux et Windows, et les résultats sont toujours les mêmes.

Je n'ai pas non plus réussi à trouver un seul exemple de la géométrie Curve. Si vous en avez un, ce serait extrêmement utile.

Notez que je asked about a similar question sur les lignes courbes sur StackOverflow, mais c'était sur la façon de générer du texte «incurvé» bien connu à partir de plusieurs segments de chaînes de lignes, généré sur le serveur.

Répondre

2

Malgré la preuve du contraire (étant donné que je devrais utiliser la géométrie de la courbe au lieu de générer des segments incurvés côté serveur et la documentation sur la géométrie de la courbe), il n'existe aucune méthode de dessin. Vous pouvez donc créer des entités avec la géométrie de la courbe tout ce que vous voulez, mais elles ne seront pas réellement rendues. Dang. J'ai également demandé en IRC, et a obtenu cette réponse de Chris Schmidt:

crschmidt: Je ne crois pas que OpenLayers supporte les courbes. Crschmidt: Je ne voudrais pas essayer d'utiliser une telle classe, si elle existe.