OpenLayers को PostGIS डेटा से कैसे कनेक्ट करें?


10

मैंने OpenLayers में पढ़ा है कि OpenLayers में KML, GeoJSON आदि वेक्टर फ़ाइलों को कैसे लोड किया जाए। लेकिन मैं PostGIS डेटा से कैसे जुड़ सकता हूं। यदि नहीं, तो मुझे अपना डेटा PostGIS पर क्यों अपलोड करना चाहिए, इसके बजाय सीधे WebServices का उपयोग करके अपना डेटा डालना चाहिए। क्या मुझे कुछ याद आ रहा है?

और मैं इस वेक्टर डेटा को लोड करना चाहता हूं ताकि कोई भी विशेषताओं पर क्लिक करके विशेषताओं को देख सके। मुझे PostGIS की आवश्यकता है क्योंकि भविष्य में मैं प्रश्नों को सक्षम करना चाहता हूं। मुझे लगता है कि यह केवल PostGIS जैसे डेटाबेस को बनाए रखने से संभव है। लेकिन OpenLayers का उपयोग कैसे करें?

मैंने OpenLayers Beginner's Guide को पढ़ा है, लेकिन कहीं भी इसका उल्लेख नहीं किया गया है। कृपया सहायता कीजिए!!

जवाबों:


26

दुर्भाग्य से आप सुरक्षा चिंताओं के कारण किसी वेब पेज को सीधे डेटाबेस से नहीं जोड़ सकते, आम तौर पर आपको दोनों को एक साथ जोड़ने के लिए कुछ मिडलवेयर की आवश्यकता होती है।

तो आपके उदाहरण के लिए और यदि आप ओपन सोर्स सॉफ़्टवेयर से चिपके रहना चाहते हैं तो आप आसानी से जियोसर्वर का उपयोग अपने भौगोलिक सर्वर के रूप में अपने पोस्टगैस डेटाबेस से अपने ओपनलाइयर एचटीएमएल वेब पेज पर कर सकते हैं।

यह क्यों अच्छा है कि जियोसर्वर डेटा को एक मानक तरीके से काम करेगा, ओजीसी वेब मैप सर्वर (डब्ल्यूएमएस) या वेब फ़ीचर सर्विस (डब्ल्यूएफएस) और दोनों को ओपन लाइयर्स और कई अन्य एपीआई (ईएसआरआई वाले, कैटलॉग आदि) और अन्य डेस्कटॉप द्वारा समझा जाता है। जीआईएस सॉफ्टवेयर (ESRI, MapInfo, QGIS, uDig आदि)

इसलिए मैं जियो सेवर डॉक्यूमेंटेशन को देखना शुरू करूँगा जो आपको चलता है कि कैसे जियो सेवर को पोस्टजीआईएस से जोड़ा जाए और फिर डेटा की सेवा की जाए।

http://docs.geoserver.org/stable/en/user/gettingstarted/index.html

यदि आप इस प्रकार की चीजों के लिए नए हैं, तो OpenGeo ट्यूटोरियल्स की तुलना में शुरू करने के लिए बेहतर जगह नहीं है

http://workshops.opengeo.org/

मैं निश्चित रूप से अपने डेटा PostGIS में होने के साथ रहना होगा अगर

a) आपके पास बहुत से डेटा हैं b) आप क्वेरीज़ चलाना चाहते हैं (जैसे आप करते हैं) और c) यदि बहुत सारे लोग इस ऐप का उपयोग करने जा रहे हैं

यदि आप क्वेरीज़ को चलाने जा रहे हैं, तो मैं वेब प्रोसेसिंग सर्विसेज (डब्ल्यूपीएस) को देखूंगा, ये अभी भी "नए" हैं, लेकिन ये जियोसेवर में समर्थित हैं।

यदि आपके पास थोड़ी मात्रा में डेटा है और क्वेरी को प्री-रन कर सकते हैं और फिर OpenLayers को प्रदर्शित करने के लिए उपयोग कर सकते हैं तो आपको एक फ्लैट फ़ाइल से GeoJSON का उपयोग करने के लिए चिपके रहना चाहिए या यहां तक ​​कि TopoJSON को भी देखना चाहिए जो D3 जावास्क्रिप्ट लाइब्रेरी के लिए बहुत लोकप्रियता प्राप्त कर रहा है - यहाँ देखें http://bost.ocks.org/mike/map/ माइक बॉशॉक का ट्यूटोरियल बहुत अच्छा है।

उम्मीद है की वो मदद करदे


14

दोनों को जोड़ने का एक तरीका जियोजॉन के साथ होगा। यहाँ PostGIS डेटाबेस का एक उदाहरण क्वेरी है:

SELECT population,ST_AsGeoJSON(geom) FROM censusblocks

एक बार जब आप अपने क्वेरी परिणाम प्राप्त करते हैं तो आप कुछ इस तरह कर सकते हैं:

       var geojson_format = new OpenLayers.Format.GeoJSON();
       var vector_layer = new OpenLayers.Layer.Vector(); 
       map.addLayer(vector_layer);
       vector_layer.addFeatures(geojson_format.read(featurecollection));

featurecollectionआपका PostGIS क्वेरी परिणाम कहां है;

हालांकि सलाह दी जाती है कि यदि आपका जियोसन बहुत जटिल है तो लोडिंग / रेंडरिंग मुद्दे हो सकते हैं।

इस तकनीक के बारे में अधिक जानकारी के लिए इस OpenLayers उदाहरण को देखें


3

मैं जियोसर्वर के बिना Openlayers 3/4 के साथ PostGis का उपयोग करता हूं। जिस तरह से मैं चुनता हूं वह एक फ़ंक्शन मैं कॉल के माध्यम से पोस्टगिस-डेटाबेस से जियोजोन प्राप्त करने के लिए है, जो डेटा और शैलियों को वापस करता है जो मेरी सेटिंग्स को रिकॉर्ड करता है।

जावास्क्रिप्ट में मैं परिभाषित डेटा और स्टाइल => जावास्क्रिप्ट-समारोह Openlayers 3. पूरे sripts में प्रस्तुत करने के लिए डेटा PostGIS => समारोह शैलियों से पुनर्प्राप्त डेटा में देखा जा सकता करने के लिए मिल के माध्यम से एक php स्क्रिप्ट कॉल वहाँ एक आसान तरीका करने के लिए है Openlayers 3 में Postgis-geojson का उपयोग करें?

ऐसा लगता है कि यह तरीका सुरक्षित नहीं है, क्योंकि जीईटी-स्ट्रिंग्स में हेरफेर किया जा सकता है, लेकिन मैं https के माध्यम से एक कॉल का उपयोग करता हूं और यदि सत्र सेट होता है तो सर्वराइड php-script की जांच करता है। तो लॉग इन किए बिना स्क्रिप्ट को निष्पादित नहीं किया जा सकता है। हम इसका उपयोग बहुत छोटे समूह में करते हैं, लेकिन यह एक वातावरण में एक अच्छा तरीका नहीं हो सकता है, जहां कई कवि डेटा तक पहुंच रहे हैं।

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