प्रोग्रामेटिक रूप से OpenLayers2 में एक वेक्टर सुविधा का निर्माण करना


16

मैं अपने नक्शे पर, प्रोग्रामेटिक रूप से एक वेक्टर फीचर बनाना चाहता हूं। एक प्रकार का प्रिंट पूर्वावलोकन दिखाने के लिए यह A4-पेपरफॉर्म में होना चाहिए।

मैंने इसे संभालने के लिए एक नियंत्रण बनाया है, लेकिन अब मैं उस बिंदु पर हूं जहां मुझे फीचर बनाने की आवश्यकता है। और मुझे नहीं पता कि मैं इसे कैसे कर सकता हूं। कोई विचार?

जवाबों:


30

एक लेयर में वेक्टर फीचर बनाना और जोड़ना:

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]);

हालाँकि आप GeoExt प्रिंट नियंत्रणों को देखना पसंद कर सकते हैं क्योंकि वे पृष्ठ आकार जैसे A4 का समर्थन करते हैं और मानचित्र में पूर्वावलोकन क्षेत्र जोड़ते हैं। आप सोर्सकोड को देखने के लिए भी देख सकते हैं कि वे ऐसा कैसे करते हैं।


जियोएक्स्ट प्रिंट कंट्रोल के लिए +1। वे वास्तव में अच्छी तरह से काम करने लगते हैं। आप उन्हें कोशिश कर सकते हैं gis.uster.ch/webgis
UnderDark

मैं फीचर नाम कैसे जोड़ सकता हूं? (फीचर-> गुण-> नाम) मुझे फीचर ग्रिड में दिखाने के लिए भ्रूण की जरूरत है जैसे [यह], इसलिए उन्हें एक नाम की आवश्यकता है ( api.geoext.org/1.1/examples/feature-grid.html )
102

@ K102 अद्यतन उत्तर देखें
geographika
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.