Création par programmation d'une fonction vectorielle dans OpenLayers2


16

Je souhaite créer une entité vectorielle, par programme, sur ma carte. Il est censé être au format A4, pour afficher une sorte d'aperçu avant impression.

J'ai créé un contrôle pour gérer cela, mais maintenant j'en suis au point où je dois créer la fonctionnalité. Et je n'ai aucune idée de comment je peux le faire. Des idées?

Réponses:


30

Création et ajout d'une entité vectorielle à un calque:

var points = [
    new OpenLayers.Geometry.Point(0, 0),
    new OpenLayers.Geometry.Point(0, 100),
    new OpenLayers.Geometry.Point(100, 100),
    new OpenLayers.Geometry.Point(100, 0)
];
var ring = new OpenLayers.Geometry.LinearRing(points);
var polygon = new OpenLayers.Geometry.Polygon([ring]);

// create some attributes for the feature
var attributes = {name: "my name", bar: "foo"};

var feature = new OpenLayers.Feature.Vector(polygon, attributes);
var layer = new OpenLayers.Layer.Vector("Test");
layer.addFeatures([feature]);

Cependant, vous préférerez peut-être regarder les commandes d'impression GeoExt car elles prennent en charge les tailles de page telles que A4 et ajoutent des zones d'aperçu à la carte. Vous pouvez également consulter le code source pour voir comment ils procèdent.


+1 pour les commandes d'impression GeoExt. Ils semblent très bien fonctionner. Vous pouvez les essayer gis.uster.ch/webgis
underdark

comment puis-je également ajouter un nom de fonctionnalité? (fonctionnalité-> propriétés-> nom) j'ai besoin que feture soit affiché sur la grille de fonctionnalités comme [ceci], donc ils ont besoin d'un nom ( api.geoext.org/1.1/examples/feature-grid.html )
k102

@ k102 voir la réponse mise à jour
geographika
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.