एक सरल Google मानचित्र समाधान की आवश्यकता है; मॉड्यूल की भूलभुलैया में खो गया


15

सबसे पहले, मुझे केवल यह बताने दें कि मुझे परवाह नहीं है कि मुझे ड्रुपल के किस संस्करण का उपयोग करना होगा (6 या 7)। मेरे पास दोनों संस्करणों के साथ अनुभव है, मुझे अभी तक Google मानचित्र के साथ काम करने की आवश्यकता नहीं थी। आवश्यकताएं बहुत बुनियादी हैं (जो मैं समझता हूं):

1) हर कंपनी के लिए एक नोड है जिसे मैं मानचित्र में जोड़ना चाहता हूं

2) नोड एडिट फॉर्म में मैं एक एड्रेस जोड़ना चाहूंगा और इसे एक कस्टम गूगल मैप (या शायद गूगल मैप लोकेशन के लिंक को कॉपी-पेस्ट) में जोड़ा जा सकता है।

3) किसी दिए गए स्थान के लिए निकटतम कंपनी खोजने के लिए एक खोज फ़ंक्शन है

वहाँ से बाहर विभिन्न मॉड्यूल के टन की तरह हैं, और मैं सिर्फ अंत में महसूस करने के लिए 15+ विभिन्न मॉड्यूल के माध्यम से देखने के बजाय सही दिशा में इंगित किया जाना चाहूंगा कि मुझे अपने लिए एक कस्टम मॉड्यूल लिखने की आवश्यकता है।

अग्रिम में धन्यवाद।

जवाबों:


36

मैंने एक Drupal फीचर बनाया है जो OpenLayers ( http://drupal.org/project/ol_locator देखें ) का उपयोग करके इसे कार्यान्वित करता है या आप अपना स्वयं का सेट अप करने के लिए निम्न वाक-थ्रू का उपयोग कर सकते हैं।

  1. निम्न मॉड्यूल डाउनलोड और सक्षम करें:

  2. उप-मॉड्यूल सक्षम करें:

    • जिओफिल्ड मैप 7.x-1.0-अल्फ़ा 5
    • यूआई 7.x-3.0-rc1 देखें
    • OpenLayers UI 7.x-2.0-Alpha2
    • OpenLayers दृश्य 7.x-2.0-Alpha2
  3. admin/structure/types/add" Location" नामक नई सामग्री प्रकार पर जाएं और बनाएं

  4. admin/structure/types/manage/location/fieldsनिम्नलिखित फ़ील्ड में जाएँ और जोड़ें:

    • लेबल: पता> फ़ील्ड नाम: पता> फ़ील्ड प्रकार: डाक पता> विजेट: डायनामिक पता फ़ॉर्म
  5. सूची में से वे कौन से उपलब्ध देश चुनें जिन्हें आप पसंद करेंगे। उन सभी को अनुमति देने के लिए खाली छोड़ दें।

  6. "पता फ़ॉर्म (देश-विशिष्ट)" देखें

    • नोट: देशों और उनके संबंधित क्षेत्रों को Addressfield मॉड्यूल द्वारा नियंत्रित किया जाता है। यदि आप अपने देश को नहीं देखते हैं या यदि आपके पास उपयुक्त फ़ील्ड नहीं हैं, तो आपको उस मॉड्यूल http://drupal.org/project/addressfield के साथ समस्या दर्ज करने की आवश्यकता है (यह देखने के लिए कि क्या आपके बारे में कतार में कोई समस्या है लापता देश पहले पोस्टिंग से पहले)
  7. लेबल: जिओफिल्ड> फील्ड का नाम: जिओफिल्ड> फील्ड का प्रकार: जिओफिल्ड> विजेट: दूसरे क्षेत्र से जियोकोड

  8. जियोफिल्ड के लिए डिस्प्ले में जाएं admin/structure/types/manage/ol_locator_location/displayऔर बदलें Default:

    • लेबल: हिडन> प्रारूप: ओपनलाइयर
  9. गियर आइकन पर क्लिक करें और निम्नलिखित का चयन करें:

    • OpenLayers पूर्व निर्धारित: ज्योफिल्ड फॉर्मेटर मैप> डेटा विकल्प: पूर्ण ज्यामिति का उपयोग करें
  10. admin/structure/openlayers/layers/settingsनिम्नलिखित पर जाकर सेट करें:

    • Google मैप्स एपीआई संस्करण: v3.2
  11. आइए देखें कि टेस्ट लोकेशन बनाकर जियोकोडिंग काम कर रही है या नहीं

    • परीक्षण सामग्री प्रकार बनाते समय, सुनिश्चित करें कि आप एक अच्छी तरह से स्थापित पते का उपयोग कर रहे हैं। यदि Google आपके पते के बारे में नहीं जानता है, तो न तो आपकी नई साइट होगी।
  12. पर जाएं admin/structure/views/addऔर निम्नलिखित जानकारी के साथ कोई नया दृश्य बना

    • नाम देखें: निकटता खोज> विवरण: उपयोगकर्ताओं के लिए निकटता खोजों को करने के लिए एक गतिशील मानचित्र पर भू-स्थान प्रदर्शित करता है। > दिखाएँ: प्रकार की सामग्री: इसके द्वारा क्रमबद्ध स्थान: अनसर्टेड> जारी रखें और संपादित करें
  13. निम्नलिखित क्षेत्रों को जोड़ें और उनके डिफ़ॉल्ट मान रखें, जहां नोट किया गया है:

    1. सामग्री: शीर्षक > एक लेबल बनाएं चेक करें: "शीर्षक"
    2. सामग्री: पता (पता)
    3. सामग्री: जिओफिल्ड (जिओफिल्ड)> प्रदर्शन से बाहर निकालें
    4. निकटता: दूरी (दूरी)
  14. निम्नलिखित फ़िल्टर मानदंड को मौजूदा में जोड़ें:

    • सामग्री: प्रकाशित (हाँ) और
    • सामग्री: प्रकार (= स्थान)
    • निकटता: ग्रेट-सर्कल (उजागर)> आगंतुकों को इस फ़िल्टर को उजागर करने के लिए, उन्हें इसे बदलने की अनुमति देने के लिए> लेबल: निकटता> मूल्य फ़ील्ड में "10" जोड़ें> माप की इकाई अनलॉक करें> स्थान अनलॉक करें
  15. शीर्ष लेख > वैश्विक: पाठ क्षेत्र> भले ही कोई परिणाम न दिखाई दे

    • "अपने आस-पास एक स्थान खोजें। आप अपने शहर, प्रांत / राज्य या पोस्टल / ज़िप कोड का उपयोग करके खोज सकते हैं।"
  16. कोई परिणाम व्यवहार नहीं > वैश्विक: पाठ क्षेत्र और निम्नलिखित जोड़ें:

    • "क्षमा करें, कोई परिणाम नहीं मिला।
      1.) अपने डाक / ज़िप कोड की सटीकता की पुष्टि करें ।
      2.) अपने शहर, प्रांत या राज्य की वर्तनी की जाँच करें।
      3) निकटता दूरी बढ़ाएँ"
  17. बटन टेक्स्ट सबमिट करें : खोजें

  18. नया प्रदर्शन जोड़ें: " OpenLayers Data Overlay "

  19. प्रारूप :

    • सेटिंग्स> इस ओपनलेयर (ओवरराइड) को लागू करें> मैप डेटा स्रोत: WKT> WKT फ़ील्ड: जिओफिल्ड> विवरण फ़ील्ड>> लागू करें (यह प्रदर्शन)
  20. दृश्य सहेजें

  21. के लिए जाओ admin/structure/openlayers/maps

  22. डिफ़ॉल्ट मैप को क्लोन करें

  23. सामान्य जानकारी> नाम: location_map। शीर्षक: लोकेशन मैप> मैप विवरण: यह डिफ़ॉल्ट लोकेशन मैप है।

  24. परत और शैलियाँ> ओवरले परतें (हमारे द्वारा बनाए गए दृश्य का चयन करें) स्थान "सक्षम" "सक्रिय" जियोफिल्ड फ़ॉर्मेटर के लिए प्लेसहोल्डर के लिए भी ऐसा ही करें

  25. व्यवहार> पॉप अप (वापस आना होगा और "पॉपअप लगाने के लिए परत का चयन करें।" बाद में)> ज़ूम टू लेयर "मैप लोड होने पर ज़ूम करने के लिए परत का चयन करें" > प्वाइंट ज़ूम स्तर: 20 ****

  26. नक्शा सहेजें

  27. हमारे द्वारा अभी बनाए गए दृश्य पर वापस जाएं

    • admin/structure/views/view/proximity_search/edit
  28. प्रदर्शन "पृष्ठ" जोड़ें

    • पथ: /locator
    • प्रारूप: OpenLayers मानचित्र> लागू करें (यह प्रदर्शन)> मानचित्र: स्थान मानचित्र (वह जो हमने अभी OpenLayers में बनाया था) लागू करें
  29. दृश्य को सहेजें (हमें अब हमारे मानचित्र को हमारे दृश्य के निचले भाग में पूर्वावलोकन फलक में देखना चाहिए, किसी भी परीक्षण सामग्री के साथ

  30. प्रदर्शन जोड़ें: "अनुलग्नक"

    • प्रारूप: तालिका> लागू करें (यह प्रदर्शन)
    • संलग्न करें: पेज
    • इनहेरिट किए गए फ़िल्टर: हाँ
    • हेडर निकालें> वैश्विक: पाठ क्षेत्र> लागू करें (यह प्रदर्शन)
    • प्रदर्शित करने के लिए आइटम: आइटम की एक निर्दिष्ट संख्या प्रदर्शित करें | 5 आइटम
    • इनहेरिट पेजर: हाँ
    • रेंडर पेजर: हाँ
  31. दृश्य सहेजें

  32. व्यवहार> पॉप अप> परतें> निकटता_सर्च_प्रोपेलेयर्स_1 (खुले हुए मानचित्रकार मानचित्र जिसे हमने अभी बनाया है)

  33. ज़ूम टू लेयर> मैप लोडिंग पर दिए गए लेयर की सीमा तक ज़ूम करता है। >proximity_search_openlayers_1

  34. वापस admin/structure/types/manage/location/display> गियर आइकन पर वापस लौटें और ओपन लेयर्स प्रीसेट को उस लोकेशन मैप में बदलें जिसे हमने अभी बनाया है> अपडेट> सेव करें

देखा! किया हुआ


1
आप का जवाब इतना विस्तृत है कि मैं आपको एक इनाम और ऑटो-ईनाम देना चाहता हूं: D मैं अब चरणों की कोशिश करूंगा और आपको
बताऊंगा

यह सिर्फ उत्तर नहीं है, यह एक ट्यूटोरियल है :)
21

+1, लेकिन यह ध्यान रखना महत्वपूर्ण है कि यह ol_locatorफीचर मॉड्यूल के नए संस्करणों के साथ छोटा हो सकता है, और इसमें कोई संस्करण संख्या प्रतिबंध नहीं हैं। मैंने इसका अनुभव किया (दुर्भाग्य से)। लेकिन आपका जवाब वास्तव में बहुत विस्तृत है।
Sk8erPeter

यदि मॉड्यूल छोटी गाड़ी है, तो कृपया इसे मेरे मॉड्यूल के मुद्दे की कतार में पोस्ट करें जो ठीक से काम नहीं कर रहा है (पूर्ण विवरण)। मुझे मुद्दों को ठीक करने में कोई समस्या नहीं है लेकिन मुझे उनके बारे में जानना चाहिए। :)

मैंने अभी-अभी OpenLayers Locator का परीक्षण किया है और यह बहुत अच्छी तरह से और विज्ञापित के रूप में काम करता है। थैंक्स @nicoz
निगेल वाटर

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