मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

LocationPicker

LocationPicker GPS ट्रैकिंग और खींचने योग्य पिन के साथ मानचित्र पर एक भौगोलिक निर्देशांक का चयन करता है। यह पिकर पैटर्न का पालन करता है (देखें Picker) और एक LatLon लौटाता है।

🔴 · पैकेज: dev.crossfly.ui.picker · एक्सटेंड करता है: Picker · हार्डवेयर: GPS + मानचित्र

कब उपयोग करें

  • मानचित्र पर एक स्थान एकत्र करना (डिलीवरी पता, रुचि का बिंदु)।

दिखावट

गोल बटनों वाली शीर्ष पट्टी (मानचित्र प्रकार Normal/Satélite, बैक, पुष्टि), बॉडी को घेरता मानचित्र (FILL), परिशुद्धता वृत्त (PDOP के अनुसार हरा/लाल) वाला खींचने योग्य पिन और नीचे एक स्टेटस लेबल।

पूरा उदाहरण (कॉपी करें, पेस्ट करें और चलाएं)

LocationPicker एक पूर्ण-स्क्रीन मानचित्र खोलता है — इसे किसी Button से ट्रिगर करें। उदाहरण बुनियादी उपयोग का पुनः उपयोग करता है और पुष्ट निर्देशांक को एक Label में दिखाता है। LatLon dev.crossfly.map से आता है।

package com.exemplo;

import dev.crossfly.map.LatLon;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.picker.*;

/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      Label saida = new Label("Nenhuma coordenada");
      add(LAY_AUTO, saida);

      Button escolher = new Button("Escolher local no mapa")
         .onAction(c ->
         {
            LocationPicker lp = new LocationPicker(
               coord -> {},   // construtor का onCapture (वैकल्पिक; null हो सकता है)
               10.0,          // minPdop
               true,          // पिन को खींच सकते हैं
               true,          // उच्च परिशुद्धता
               false);        // बिना street view

            lp.show(answer ->
            {
               LatLon ll = (LatLon) answer;
               if (ll != null)
                  saida.setText("Local: " + ll.lat + ", " + ll.lon);
            });
         });
      add(LAY_AUTO, escolher);
   }
}

नीचे दिए गए स्निपेट केवल मुख्य भाग दिखाते हैं (जो onShow() के अंदर जाता है)। चलाने के लिए, उन्हें ऊपर के MainWindow ढांचे में रखें।

बुनियादी उपयोग

LocationPicker lp = new LocationPicker(
   coord -> Debug.log("Capturado: " + coord.lat + "," + coord.lon),
   10.0,   // minPdop
   true,   // पिन को खींच सकते हैं
   true,   // उच्च परिशुद्धता
   false); // बिना street view

lp.show(answer ->
{
   LatLon ll = (LatLon) answer;
   salvarLocal(ll.lat, ll.lon);
});

कंस्ट्रक्टर

कंस्ट्रक्टर विवरण
LocationPicker(RunnableWith<LatLon> onCapture, double minPdop, boolean canDragPin, boolean highPrecision, boolean streetview) नीचे पैरामीटर देखें।
पैरामीटर प्रकार क्या करता है
onCapture RunnableWith<LatLon> पुष्टि पर LatLon के साथ कॉलबैक (null हो सकता है)।
minPdop double अधिकतम स्वीकार्य PDOP; इसके प्राप्त होने तक पुष्टि छिपी रहती है।
canDragPin boolean पिन को मैन्युअल स्थान पर खींचने की अनुमति देता है।
highPrecision boolean उच्च-परिशुद्धता GPS चालू करता है।
streetview boolean मानचित्र पर street view सक्षम करता है।

कॉलबैक और इवेंट

कॉलबैक कब ट्रिगर होता है
onCapture (कंस्ट्रक्टर) पुष्टि पर, LatLon के साथ (यदि != null)।
show(onAnswer) बंद होने पर, पुष्ट LatLon सौंपता है।

getAnswer() पुष्ट LatLon लौटाता है, या रद्द होने पर null। परिणाम के लिए दो रास्ते हैं (कंस्ट्रक्टर का onCapture और show का onAnswer) — दोनों केवल तभी ट्रिगर होते हैं जब answer != null।

स्थितियां

  • पिन खींचने से GPS बंद हो जाता है (canUpdateGPS = false), “Custom Location” चिह्नित होता है और पुष्टि दिखती है।
  • पुष्टि बटन केवल तब दिखता है जब परिशुद्धता स्वीकार्य होती है (या डेस्कटॉप पर, या मैन्युअल खींचने के बाद)।
  • संसाधन (GPS थ्रेड, Location, मानचित्र) बंद होने पर केवल एक बार मुक्त किए जाते हैं।

सर्वोत्तम अभ्यास

  • एक यथार्थवादी minPdop चुनें; मोबाइल पर GPS द्वारा इसे प्राप्त करने तक पुष्टि छिपी रहती है।
  • hide() के बाद इंस्टैंस का पुनः उपयोग न करें — GPS/मानचित्र संसाधन मुक्त हो जाते हैं।

सामान्य गलतियां

  • पुष्टि कभी न दिखना — GPS ने minPdop प्राप्त नहीं किया और उपयोगकर्ता ने पिन नहीं खींचा (डेस्कटॉप पर यह तुरंत दिखता है)।
  • रद्द करने पर onAnswer की उम्मीद करना — यह ट्रिगर नहीं होता (answer = null)।

यह भी देखें

  • क्षेत्र गाइड: ui/ · रेसिपी: cookbook/
  • पैटर्न का आधार: Picker
क्या यह पृष्ठ उपयोगी था?