एक छोटी सी वेब-मैपिंग / मैप-टाइलिंग सेवा बनाना


26

मैं एक या एक से अधिक बहुभुज आकार के ऑनलाइन (किसी भी मौजूदा मानचित्र-सर्वर बुनियादी ढांचे के बिना नगर निगम की वेबसाइट पर, सटीक होने के लिए) को प्रस्तुत करने के लिए एक छोटे पैमाने पर और आसान तरीके की तलाश कर रहा हूं। अभी, मैं क्यूजीआईएस के साथ सभी काम कर रहा हूं, और मैं सभी ओपन-सोर्स रहना पसंद करूंगा (किसी बड़े सॉफ्टवेयर निवेश के लिए कोई बजट नहीं बचा है)।

इस विषय पर शोध करने से संभावित दृष्टिकोणों की एक बड़ी संख्या हुई, और मुझे काफी उलझन में छोड़ दिया। मैं जो खोज रहा हूं वह है

  • एक विषयगत नक्शे में वर्गीकृत बहुभुज दिखाने में सक्षम होने के नाते (- यदि संभव हो तो, पॉपअप प्राप्त करना या विशेषता जानकारी प्राप्त करने में सक्षम होना अच्छा होगा - लेकिन यह अत्यधिक वैकल्पिक है)
  • मैं QGIS में अधिकांश कार्य (स्टाइलिंग आदि) करना पसंद करूंगा
  • बेस मैप के रूप में OSM पूरी तरह से ठीक होगा

अब तक, OSM बेस मैप पर कस्टम मैप टाइलें उस चीज़ की तरह दिखती हैं, जिसे मैं खोज रहा हूँ (या कोई बेहतर समाधान है)? इन टाइलों को बनाने का सबसे अच्छा तरीका क्या होगा?


2
क्या यह एक रेखापुंज आधारित (वेब ​​टाइल्स) समाधान होना चाहिए? क्या यह एक वेक्टर समाधान के लिए ठीक होगा?
Mapperz

नहीं, बिलकुल नहीं। मुझे लगा कि यह सबसे आसान तरीका होगा (टाइल्स बनाएं, मौजूदा वेब पेज में पेस्ट करने के लिए index.htm या कोड ब्लॉक बनाएं, सर्वर डायरेक्टरी को कॉपी करें, किया गया)। मैंने एक निजी परियोजना पर एक बार पहले GMapCreator के साथ काम किया था, और यह चीजों को प्राप्त करने का एक बहुत तेज़ तरीका था।
सिन्द्रेका

आपके आकार में कितने बहुभुज आपके पास हैं? यदि इसकी 1000 से कम है, तो शायद सदिश समाधान पर @ मैपरेज़ की टिप्पणी जाने का रास्ता है। सबसे सरल उपाय यह है कि पॉलीगोन खींचने और जानकारी पॉप-अप विंडो बनाने के लिए Google मैप्स एपीआई का उपयोग करें - गैर-इंटरैक्टिव टाइल छवियों को बनाने और संग्रहीत करने की आवश्यकता नहीं है। नक्शे की टाइल वाली छवियां अत्यधिक घनीभूत जानकारी के लिए सर्वोत्तम हैं, जैसे कि उपग्रह इमेजरी, सड़कें या जनगणना पथ की सीमाएँ।
b_dev

जवाबों:


13

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

एक बार जब आपके पास WMS मानचित्रों की सेवा करने के लिए एक सिस्टम सेट हो जाता है तो आप एक क्लाइंट फ्रंट एंड चाहते हैं। मैं OpenLayers की सिफारिश करूंगा क्योंकि यह बहुत आसान है और आसानी से विस्तार योग्य है। यह कोई समस्या नहीं के साथ WMS, WMST और OSM टाइल्स को हैंडल करता है।

अंततः आपको अपनी WMS परतों के लिए टाइलों को स्थानांतरित करने की आवश्यकता हो सकती है (कहते हैं कि आपको उचित हार्डवेयर पर प्रति मिनट 50-100 से अधिक अनुरोध मिलना शुरू हो जाते हैं) तब आप मैप सर्वर के सामने टाइल कैश लगाना चाहते हैं। यदि आपने GeoServer का उपयोग किया है तो आप GeoWebCache का उपयोग कर सकते हैं जो कि अंतर्निहित है या आप टाइलकेच का उपयोग कर सकते हैं ।


मेरी समस्या यह है कि मैं इस समय एक नगरपालिका प्रशासन के भीतर एक फ्रीलांस सलाहकार के रूप में काम कर रहा हूं। स्थानीय आईटी कर्मचारी काफी मोटा है और अपनी मशीनों से सभी प्रकार के "संदिग्ध" ओपनसोर्स-सामान रखने की कोशिश करता है (मैंने QGIS के लिए एक लंबी लड़ाई लड़ी)। इसलिए मैं वास्तव में किसी भी समाधान से बचना चाहूंगा जिसे नगरपालिका के वेबसाइट पर "सॉफ़्टवेयर" के रूप में स्थापित करने की आवश्यकता है।
सांडेरका

मेरा स्वप्न समाधान कुछ ऐसा होगा जिसे मैं अपने दम पर तैयार कर सकता हूं और सिर्फ उनके webspace पर कॉपी कर सकता हूं, html / JS-code में डाल सकता हूं और किया जा सकता हूं। चाहे वह रेखापुंज हो या वेक्टर डेटा वास्तव में अंत में नहीं गिनता है। मैं वैसे भी तकनीकी अंतर को समझने वाला अकेला हूं ... और बाकी सभी परवाह हमारे नागरिकों के लिए हमारे डेटा की एक अच्छी और आसान प्रस्तुति है।
सिन्द्रेका

1
आपको बस उन्हें समझाने की जरूरत है कि वेब मैपिंग ऐसी चीज नहीं है जिसे आप बिना सॉफ्टवेयर के आसानी से कर सकते हैं। यकीन है कि आप एक वेब सर्वर पर कुछ सरल टाइल फेंक सकते हैं, लेकिन यह सभी पैमानों पर अच्छा नहीं लगेगा, इसे बनाए रखना मुश्किल है और जब मेयर अधिक चाहता है तो सुविधाओं को जोड़ना मुश्किल है।
इयान Turton

इसलिए, मैंने जियोसर्वर (ओपन जियो सूट पैकेज के एक भाग के रूप में) में देखा, और यह बहुत अच्छा लग रहा है। मैंने अपनी शेपफाइल का आयात किया, इसे स्टाइल किया, यहां तक ​​कि लोकलहोस्ट पर चलने वाला पूर्वावलोकन भी मिला। लेकिन मैं अपने मैप्स पर ये नक्शे ऑनलाइन कैसे प्राप्त करूं? क्या मैं कुछ भूल रहा हूँ? बुकमार्क आदि स्पष्ट रूप से काम नहीं करेंगे क्योंकि वे मेरे स्थानीय हार्डड्राइव को संदर्भित करते हैं। मैंने सभी संभावित ट्यूटोरियल और टॉस के माध्यम से अपना काम किया, लेकिन उस विषय पर कभी चर्चा नहीं हुई? क्या कोई मुझे सही दिशा बतला सकता है?
SAnderka

आप अपने वेब सर्वर पर जियोसेवर डालें और स्थानीय मशीन से दूरस्थ मशीन पर डेटा निर्देशिका की प्रतिलिपि बनाएँ।
इयान Turton

8

एक विषयगत नक्शे में वर्गीकृत बहुभुज दिखाने में सक्षम होने के नाते (- यदि संभव हो तो, पॉपअप प्राप्त करना या विशेषता जानकारी प्राप्त करने में सक्षम होना अच्छा होगा - लेकिन यह अत्यधिक वैकल्पिक है)

मैं QGIS में अधिकांश कार्य (स्टाइलिंग आदि) करना पसंद करूंगा

बेस मैप के रूप में OSM पूरी तरह से ठीक होगा

यह सब QGIS और ogr2layersप्लगइन के भीतर किया जा सकता है । वर्कफ़्लो सरल है:

  1. अपने डेटा को QGIS में स्टाइल करें। पुराने सीबम का उपयोग करें क्योंकि मेरे पास प्लगइन New Symbologyका उपयोग करते समय समस्याएँ थीं ogr2layers

  2. ogr2layersप्लगइन लॉन्च करें और ओपनर सेटिंग को परिभाषित करें (जैसे मानचित्र आकार, मानचित्र नियंत्रण, बेसमैप, आदि)। यह एक निर्देशिका बनाएगा जिसमें फ़ाइलों के index.htmlरूप में परिवर्तित की गई आपकी डेटा परतें होंगी geojson

  3. निर्देशिका को वेबसर्वर में अपलोड करें।

ध्यान दें कि यह केवल साधारण वेबमैप के लिए है। कस्टम बेसमैप और अन्य वेबमैपिंग सुविधाएँ बनाने के लिए, iant और पीटर के उत्तर देखें।


1
सरल वेबमैप का अर्थ है कि यह अभी भी ज़ूम और स्क्रॉल करने योग्य है, हाँ? मुझे लगता है कि जब मुझे अपने कार्यालय में वापस आना चाहिए, तो मुझे कुछ देखना चाहिए।
SAnderka

1
हां, इस उदाहरण को देखें कि कैसे डाउनलोड करें- डाउनलोड करें
।essc.org.ph

6

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


उनके डेमो वीडियो को फ्रंट पेज पर देखें, यह बहुत प्रभावशाली है!
जोशो

6

मैंने कुछ जानकारी प्रदान करने का फैसला किया कि मैं किस रास्ते पर आखिरकार अपनी टाइल की गई मैप सेवा के लिए गया। प्योर JavaScript और GeoJSONs एक समाधान नहीं थे, क्योंकि मुझे लगभग 40k बहुभुज और 33k अंक को संभालना है। इसलिए मैं टाइलिंग के लिए गया। ओह, और मेरे पास अभी भी रूट सर्वर तक पहुंच नहीं है, इसलिए मैं जियोसर्वर या कुछ समान सेट नहीं कर सकता (फिलहाल एक भी ग्राहक के लिए वित्तीय रूप से संभव नहीं होगा)

कुछ शोध और पढ़ने के बाद, मैं आखिरकार ओपन लॉयर्स (जीएमएप्स के साथ कुछ प्रदर्शन के बाद) के साथ बस गया। एरिक हेज़र्ड की महान पुस्तक "ओपन लाइयर्स 2.10" (पैक्ट पब्लिशिंग, 2011) वास्तव में, वास्तव में मुझे बहुत मदद मिली क्योंकि यह कुछ जावास्क्रिप्ट मूल बातें और डीबगिंग युक्तियों को भी कवर करती है।

मैंने क्यूजीआईएस में अपने सभी वेक्टर डेटा का काम किया, निश्चित रूप से, मेरे जैसे एक छोटे फ्रीलांसर के लिए जाने का रास्ता निश्चित रूप से है (मैं विश्वविद्यालय से काफी कुछ आर्कगिस सामान भी जानता हूं, लेकिन क्यूजीआईएस मुझे अब तक की जरूरत के सभी ऑफर दे रहा है)।

नक्शे को स्टाइल करना और टाइल्स बनाना एक बड़ी चुनौती थी। सबसे पहले, मैं CASA द्वारा " GMapCreator " के साथ गया था , लेकिन कई आकार-प्रकार के लेयर थकाऊ साबित हुए (मुझे पॉलीगॉन पर बिंदु डेटा प्रदान करना है, और फिर सब कुछ घेरते हुए एक नगरपालिका सीमा रेखा)। GMapsCreator में ऐसा करना पूरी तरह से संभव है (और मैंने इसे शोकेस स्टेज के लिए किया था), लेकिन इसमें 3 पूर्ण रेंडरिंग साइकल लगते हैं (पहले आप टाइल्स बनाते हैं, फिर मौजूदा टाइल्स को बाद के फीचर्स के साथ "ओवरड्रन" मिलता है - सही क्रम में रेंडर करना महत्वपूर्ण है!), और स्टाइल मेनू थोड़ा भारी और भ्रमित कर रहे हैं। अपने नक्शे को सहेजना और बाद में इसे संपादित करना भी एक जटिल मुद्दा है।

टाइलमिल बहुत ही आशाजनक लग रहा था, खासकर उनकी सीएसएस जैसी स्टाइल, इसलिए मैंने इस पर ध्यान दिया। दुर्भाग्य से, यह केवल मैक या लिनक्स है, ताकि कुछ लोगों को डरा सके। मुझे वास्तव में पसंद आया कि मैंने क्या देखा, इसलिए मैंने अपनी हार्ड-ड्राइव पर एक उबंटू विभाजन स्थापित किया, इसे डाउनलोड किया और अपने मानचित्रों को स्टाइल किया। स्टाइलिंग सिंटैक्स पर प्रलेखन कभी-कभी थोड़ा दुर्लभ होता है, लेकिन उनके डेमो वीडियो (मुख्य साइट पर जुड़ा हुआ) को देखने से लगभग हर चीज का जवाब मिलता है। नेस्टेड और / या सशर्त शैलियों के साथ कुछ दिलचस्प सामान करना संभव है, और कुछ बुनियादी सीएसएस समझ आपको वास्तव में मिलनी चाहिए जहां आप जाना चाहते हैं।

अंत में, टाइलमिल एक अच्छा, एकल * .mbtiles फ़ाइल प्रदान करता है। मुझे नहीं लगता कि OpenLayers में इन्हें सीधे प्रदर्शित करने का एक तरीका है (कम से कम मुझे एक नहीं मिल सकता?), इसलिए यह एक और उपकरण का उपयोग करने का समय था: mbutil । यह उपकरण एक नियमित फ़ोल्डर संरचना में mbtiles- फाइल को "अनज़िप" करता है जिसमें चयनित ज़ूम स्तरों पर मेरे डेटा के टाइल वाले pngs होते हैं।

अंत में, मैंने इन सभी फाइलों को अपने एफ़टीपी-सर्वर पर अपलोड किया, ओएल पर कुछ भारी पढ़ना अपना वेबमैप प्राप्त करना और जाना (आपने बनाई गई टाईल्स को टीएमएस परत के रूप में जोड़ा, लेकिन सही स्रोत यूआरएल और परत के नाम का अनुमान लगाने में कुछ समय और लगा। googling) और फिर मूल html / CSS मुद्दों के साथ कुछ घंटों के लिए आग लगा दी। मैं अपने क्लाइंट "कॉर्पोरेट" (यह एक नगरपालिका है, जैसा कि उल्लेख किया गया है) के दिशा निर्देशों का पालन करते हुए एक अस्थायी किंवदंती के साथ 100% चौड़ाई / ऊंचाई का नक्शा चाहता था।

ओह, और अब तक मैं Google मैप्स का उपयोग आधार परतों के रूप में करता हूं, लेकिन हो सकता है कि जल्द ही डब्ल्यूएमएस के माध्यम से सेवा की जाने वाली कुछ कस्टम हवाई चित्रों द्वारा प्रतिस्थापित किया जाए (मेरे द्वारा प्रदान नहीं किया गया है, लेकिन राज्य का सर्वेक्षण और जियोडेटा प्रशासन)।

मुझे आशा है कि मैं कुछ भी महत्वपूर्ण नहीं भूल गया, लेकिन अगर मैंने किया, तो कृपया बेझिझक पूछें! मैं कभी-कभी इस धागे की जाँच करूँगा।


अब तिलमिल विंडोज के लिए भी उपलब्ध है। डेटा स्रोत के रूप में mbtiles का उपयोग करने के बारे में Openlayers उपयोगकर्ता मेलिंग सूची पर एक अपेक्षाकृत हाल ही में थ्रेड भी है (यह कोशिश नहीं की है)।
मैट विल्की

आह, धन्यवाद, अच्छा पता है। निश्चित रूप से कोशिश करनी होगी कि पूरे समय win7 और ubuntu के बीच स्विच करने के लिए यह थोड़ा कष्टप्रद हो।
सँडेरका

3

यदि आपके पास 1000 बहुभुज हैं, तो @ मपरज़ की टिप्पणी को एक सॉल्यूशन समाधान पर विचार करें - यदि आपको केवल कुछ बहुभुज हैं तो गैर-संवादात्मक टाइल वाली छवियों को बनाने और संग्रहीत करने की आवश्यकता नहीं है ।

टाइल की गई छवियां अत्यधिक घनीभूत जानकारी के लिए इष्टतम हैं जैसे कि उपग्रह इमेजरी, सड़कें, या 50,000 जनगणना पथ बहुभुज दिखाते हैं।

पॉलीगनों की एक छोटी संख्या के लिए सबसे सरल उपाय है कि शेपफाइल को KML में बदलना और Google My Maps पर अपलोड करना।

यदि आप जावास्क्रिप्ट में कोड करते हैं, तो पॉलीगॉन खींचने और सूचना पॉप-अप विंडो बनाने के लिए सबसे इंटरेक्टिव समाधान Google मैप्स एपीआई (या ओपनलाइयर) है। आप GDAL लाइब्रेरी का उपयोग करके, जेजसन फाइल (भौगोलिक जानकारी संग्रहीत करने का एक जावास्क्रिप्ट तरीका) में GDAL लाइब्रेरी का उपयोग करके शेपफाइल बहुभुजों को परिवर्तित करके शुरू कर सकते हैं।

या यदि आप टाइल मार्ग पर चले गए हैं तो आप घर में परेशानी के लिए ऐमज़ॉन या Google के क्लाउड पर टाइलें संग्रहीत कर सकते हैं।

इस विषयगत मानचित्रण ब्लॉग प्रविष्टि में टाइल दृष्टिकोण पर वेक्टर दृष्टिकोण के लाभों का एक अच्छा सारांश है जिसे आप विचार कर रहे हैं।

सौभाग्य!


मैंने पाया कि एकल दृश्य पर वेक्टर के रूप में माना जाने वाला लगभग 500 अंक चीजों को क्रॉल तक धीमा कर देता है। हम 500 से अधिक बिंदुओं पर सब कुछ टाइल करते हैं।
मिकालिस अवराम

1

मुझे लगता है तुम दोस्त के लिए, के रूप में ive धीरे-धीरे एक ही निष्कर्ष पर मेरे काम कर रहा था। QGIS सीखने के बाद, मैंने क्वांटमनिक और मैपनिक की कोशिश की। लेकिन जब यह qgis स्टाइल को अपनी एक तरह से यात्रा करने के लिए पोर्ट कर देगा और स्टाइलिंग सिस्टम 1 के लिए 1 हो जाता है, तो आपको वैसे भी मैपिक स्टाइल सीखना होगा। मैं यह अनुमान लगा रहा हूं कि यही क्यूजीस मेपरसवर एक्सपोर्ट फंक्शन पर भी लागू होता है। ऐसा लगता नहीं है कि मानचित्रकार पर अपस्किल करने का एक "आसान तरीका" है, बस इसे कुदालें और बहुत समय दें।

Mapnik, जियोसर्वर, Mapserver, ऐसा लगता है कि प्रत्येक के भक्त हैं, लेकिन Mapserver मध्य सड़क प्रतीत होता है।

कहा जाता है कि एक शॉर्टकट है जो मैंने पाया है और वह है कि क्यूगिस के पास एक कमांड लाइन विकल्प है जो आपके चयन के प्रस्ताव और सीमा को qgis मैप को rasterize करने के लिए है, और एक विश्वस्तरीय बनाता है। इसके साथ आप एक समय में एक परत को टाइल करने के लिए maptiler या gdal2tiles का उपयोग कर सकते हैं। स्पष्ट रूप से 20 ज़ूम स्तरों के लिए अच्छा नहीं होगा, और न ही मुझे पता है कि अधिकतम png आकार की सीमा क्या है।


2
QGIS MapServer MapServer से अलग है।
इयान Turton

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