Scribble Maps Blog
हमारा अब तक का सबसे बड़ा रिलीज़, मोबाइल और API।
हम आखिरकार Scribble Maps का अपना नया संस्करण जारी करने को लेकर बेहद उत्साहित (और थोड़े राहत महसूस कर रहे) हैं। बात करने के लिए बहुत कुछ है। हमने एक नया बेसिक एडिटर और साथ ही एक पूर्ण API भी पेश किया है।
हम नए संस्करण के अनुभव को इतना सुसंगत बनाना चाहते थे कि लोगों को यह पता भी न चले कि हमने अनिवार्य रूप से सब कुछ नए सिरे से बनाया है। कस्टम कर्सर जैसी सरल चीजें भी एक चुनौती थीं क्योंकि हम क्रॉस ब्राउज़र अनुकूलता बनाए रखना चाहते थे। इसलिए नया संस्करण IE7 तक पूरी तरह से काम करता है।
Google द्वारा यह घोषणा किए जाने के बाद कि वे अब अपने Maps API के फ्लैश संस्करण का समर्थन नहीं करेंगे, हमने कुछ मुख्य चीजें तय कीं जो हम चाहते थे क्योंकि हमें पूरी तरह से नए सिरे से निर्माण करने की आवश्यकता थी।
हमें मिलने वाले सबसे बड़े अनुरोधों में से एक मोबाइल वातावरण और विशेष रूप से टैबलेट पर Scribble Maps का उपयोग करने की क्षमता थी। चूंकि हमने जावास्क्रिप्ट का उपयोग किया है, इसलिए यह एप्लिकेशन टैबलेट उपकरणों पर भी चलेगा।
हालांकि, मैपिंग एप्लिकेशन का चलना और उसका उपयोग करने योग्य होना, दोनों अलग बातें हैं। उदाहरण के लिए Scribble Maps के डेस्कटॉप संस्करण में आपके पास रोल ओवर होते हैं, टैबलेट में रोल ओवर नहीं होते हैं।
Scribble Maps में ड्राइंग बिल्कुल कैनवास की तरह काम करती है, इसलिए आप पहले से ही एक शैली निर्दिष्ट कर सकते हैं और कई लाइनें खींच सकते हैं जो सभी उस शैली को अपना लेती हैं। यह न केवल आकृतियों (shapes) पर लागू होता है, बल्कि यह मार्कर्स जैसी चीज़ों पर भी लागू होता है। इसलिए इस तरह की चीज़ें करना संभव है
उपयोगकर्ता का मानचित्र के साथ संबंध उपकरणों (tools) के माध्यम से परिभाषित होता है और उपकरणों को बदलकर आप यह बदलते हैं कि उपयोगकर्ता मानचित्र के साथ कैसे इंटरफेस करता है।
दूसरी ओर, Scribble Maps के साथ ऐसी कोई सीमा नहीं है। एक बार मानचित्र सहेजने के बाद, उस मानचित्र की छवि का अनुरोध किया जा सकता है, चाहे उस पर कितना भी डेटा क्यों न हो। इसके अतिरिक्त जब कोई मानचित्र सहेजा जाता है तो छवि अमान्य हो जाती है और अगली बार अनुरोध किए जाने पर फिर से रेंडर हो जाती है। यह प्रभावी रूप से आपको ऐसे इमेज लिंक बनाने की अनुमति देता है जो आपके मानचित्र बदलने के साथ अपडेट होते रहते हैं।
नीचे ऐसी ही एक छवि का उदाहरण दिया गया है।
लिंक्स
Scribble Maps API
Scribble Maps API समूह
फ्लैश से HTML5/जावास्क्रिप्ट तक
हालांकि हमारे कई उपयोगकर्ता तकनीक में इस बदलाव को नहीं समझ सकते हैं, लेकिन इसके निहितार्थ बहुत बड़े हैं। फ्लैश से HTML5/जावास्क्रिप्ट पर जाना विशेष रूप से आसान नहीं था और खासकर इसलिए क्योंकि हम अनुभव को यथासंभव वैसा ही रखना चाहते थे जिसने मूल Scribble Maps को इतना लोकप्रिय बनाया था।हम नए संस्करण के अनुभव को इतना सुसंगत बनाना चाहते थे कि लोगों को यह पता भी न चले कि हमने अनिवार्य रूप से सब कुछ नए सिरे से बनाया है। कस्टम कर्सर जैसी सरल चीजें भी एक चुनौती थीं क्योंकि हम क्रॉस ब्राउज़र अनुकूलता बनाए रखना चाहते थे। इसलिए नया संस्करण IE7 तक पूरी तरह से काम करता है।
Google द्वारा यह घोषणा किए जाने के बाद कि वे अब अपने Maps API के फ्लैश संस्करण का समर्थन नहीं करेंगे, हमने कुछ मुख्य चीजें तय कीं जो हम चाहते थे क्योंकि हमें पूरी तरह से नए सिरे से निर्माण करने की आवश्यकता थी।
- हम चाहते थे कि वेब एप्लिकेशन डेस्कटॉप और मोबाइल दोनों वातावरण में काम करे।
- हम अपना खुद का रेंडरिंग इंजन बनाना चाहते थे ताकि यदि आवश्यक हो, तो हम विभिन्न API प्रदाताओं पर स्विच कर सकें।
- हम किसी भी मैपिंग API प्रदाता की सेवा शर्तों (Terms of Service) का उल्लंघन नहीं करना चाहते थे
- हम चाहते थे कि यह पुनर्निर्माण API-केंद्रित हो ताकि डेवलपर्स अपने एप्लिकेशन में हमारे मैप ऑथरिंग टूल्स का उपयोग कर सकें
मोबाइल पर Scribble Maps
हमें मिलने वाले सबसे बड़े अनुरोधों में से एक मोबाइल वातावरण और विशेष रूप से टैबलेट पर Scribble Maps का उपयोग करने की क्षमता थी। चूंकि हमने जावास्क्रिप्ट का उपयोग किया है, इसलिए यह एप्लिकेशन टैबलेट उपकरणों पर भी चलेगा।हालांकि, मैपिंग एप्लिकेशन का चलना और उसका उपयोग करने योग्य होना, दोनों अलग बातें हैं। उदाहरण के लिए Scribble Maps के डेस्कटॉप संस्करण में आपके पास रोल ओवर होते हैं, टैबलेट में रोल ओवर नहीं होते हैं।
इसके कारण हमने उपयोगकर्ता अनुभव को इस आधार पर संशोधित किया कि क्या आप टच डिवाइस पर हैं। यह बिना किसी कोड को संशोधित किए स्वचालित रूप से होता है।
Scribble Maps API
वर्तमान में लगभग आधा दर्जन वास्तव में लोकप्रिय मैपिंग API मौजूद हैं, इसलिए हम विशेष रूप से संपादन और अन्तरक्रियाशीलता (interactivity) पर ध्यान केंद्रित करना चाहते थे, और अन्य विज़ुअलाइज़ेशन और टाइल रेंडरिंग को अन्य API पर छोड़ना चाहते थे। जब हमने यह तय किया कि हम API को कैसे संरचित करना चाहते हैं, तो हमने फैसला किया कि जावास्क्रिप्ट प्रोग्रामिंग के लिए सबसे बेहतरीन शैलियों में से एक JQuery थी। इसलिए केवल एक लाइन में ओवरले और अन्तरक्रियाशीलता बनाना संभव है।
ScribbleMap.draw.line([[lat, lng], [lat2, lng2]], { lineColor: "#0000FF" }).click(function() { alert("I have been clicked") });
Scribble Maps में ड्राइंग बिल्कुल कैनवास की तरह काम करती है, इसलिए आप पहले से ही एक शैली निर्दिष्ट कर सकते हैं और कई लाइनें खींच सकते हैं जो सभी उस शैली को अपना लेती हैं। यह न केवल आकृतियों (shapes) पर लागू होता है, बल्कि यह मार्कर्स जैसी चीज़ों पर भी लागू होता है। इसलिए इस तरह की चीज़ें करना संभव है
उपयोगकर्ता का मानचित्र के साथ संबंध उपकरणों (tools) के माध्यम से परिभाषित होता है और उपकरणों को बदलकर आप यह बदलते हैं कि उपयोगकर्ता मानचित्र के साथ कैसे इंटरफेस करता है।
डायनेमिक इमेज API
Scribble Maps का उपयोग मुख्य रूप से छवियों (images) को उत्पन्न करने के लिए किया जाता है। फ्लैश से दूर जाने पर इसने न केवल हमारे लिए एक बड़ी समस्या खड़ी की बल्कि एक नया अवसर भी दिया। अन्य मैप API के साथ एक "स्थिर छवि" (static image) बनाने की क्षमता होती है। इन स्थिर छवि API के साथ समस्या यह है कि लगभग सभी पर इस बात की सीमाएं होती हैं कि रेंडर की गई छवि पर कितना डेटा हो सकता है।दूसरी ओर, Scribble Maps के साथ ऐसी कोई सीमा नहीं है। एक बार मानचित्र सहेजने के बाद, उस मानचित्र की छवि का अनुरोध किया जा सकता है, चाहे उस पर कितना भी डेटा क्यों न हो। इसके अतिरिक्त जब कोई मानचित्र सहेजा जाता है तो छवि अमान्य हो जाती है और अगली बार अनुरोध किए जाने पर फिर से रेंडर हो जाती है। यह प्रभावी रूप से आपको ऐसे इमेज लिंक बनाने की अनुमति देता है जो आपके मानचित्र बदलने के साथ अपडेट होते रहते हैं।
नया विजेट
2.0 के साथ हमने एक विजेट भी पेश किया है जिसमें अधिक UI नियंत्रण हैं। यह हमारा पहला संस्करण है और हम अगले कुछ हफ्तों में इसमें सुधार करेंगे।लिंक्स
Scribble Maps API
Scribble Maps API समूह