2015-05-06 5 views
11

मैं मानचित्रों का प्रयोग 0.5.1 पुस्तकालयों बनाने (api reference) मैं सभी सरकारी निर्देशों का पालन किया है, लेकिन मैं निम्नलिखित समस्या है:अक्षांश प्राप्त करें और एक स्थिति के देशांतर एक नक्शे पर क्लिक किया बनाने 0.5.1 MapView

मैं

(org.mapsforge.map.android.view.MapView) MapView

पर एक onTouchListener संलग्न किया है लेकिन जब मैं) विधि mapView.getProjection (कॉल करने के लिए प्रयास करते हैं, मैं एरो आर "विधि getProjection() को हल नहीं कर सकता। यहां तक ​​कि यदि कई ऑनलाइन उदाहरणों में विधि को बुलाया जा रहा है, तो आधिकारिक एपीआई संदर्भ में या MapView.class में नहीं है। org.mapsforge.map.android.view.MapView

org.mapsforge.map.android.view.MapView mapView; 
mapView.setOnTouchListener(new View.OnTouchListener(){ 

     @Override 
     public boolean onTouch(View v, MotionEvent ev) { 
      int actionType = ev.getAction(); 
      switch (actionType) { 
       case MotionEvent.ACTION_DOWN: 

        return false; 

       case MotionEvent.ACTION_UP: 
        mapView.getProjection(); // the error is here 

        return true; 
       case MotionEvent.ACTION_MOVE: 
        return false; 
      } 
      return false; 
     } 
    }); 

वहाँ अक्षांश और mapsforge lib का उपयोग कर उपयोग किया बिंदु के देशांतर प्राप्त करने के लिए किसी भी वैकल्पिक रास्ता नहीं है? क्या मुझसे कुछ गलत हो रही है? यदि टैप के बाद निर्देशांक प्राप्त करने का कोई तरीका नहीं है, तो मुझे लगता है कि लाइब्रेरी में कुछ महत्वपूर्ण है।

धन्यवाद

उत्तर

6

उपयोग

new MapViewProjection(mapView).fromPixels(double x, double y); 

वे संस्करण 0.4 में लिंकेज उलट या तो है- अब बजाय एक MapView से प्रक्षेपण होने का, तो आप एक MapView एक प्रक्षेपण के लिए गुजरती हैं।

1

क्या आप वाकई सही MapView आयात करते हैं? MapView का एक Google संस्करण है जिसमें उस फ़ंक्शन नहीं है, अगर आपने आयात किया है कि यह गलत वर्ग सोच रहा है।

+0

नहीं, मैंने अपना MapView org.mapsforge.map.android.view.MapView के रूप में घोषित कर दिया है। – karvoynistas

+0

हम्म। मैंने सिर्फ उन दस्तावेज़ों को देखा जिन्हें आपने इंगित किया- वहां कोई प्रोजेक्शन फ़ंक्शन नहीं है। निश्चित नहीं है कि आप क्यों सोचते हैं कि कार्य मौजूद होना चाहिए। –

+0

0.3 या 0.4 जैसे mapsforge के पुराने संस्करणों में getProjection विधि शामिल है। मुद्दा यह है कि, क्लिक किए गए बिंदु के निर्देशांक प्राप्त करने के लिए वैसे भी है? यह अजीब बात है कि पुराने संस्करण पिछले की तुलना में अधिक पूर्ण हैं। – karvoynistas

1

से onTap ईवेंट का उपयोग कर सकते हैं, ताकि आपको `view.onTouch ईवेंट को संभालने की आवश्यकता न हो, जो एक टैप/क्लिक की पहचान करने में अधिक कठिन है।

// tile renderer layer using internal render theme 
MapDataStore mapDataStore = new MapFile(filename); 
TileRendererLayer tileRendererLayer = 
     new TileRendererLayer(tileCache, 
           mapDataStore, 
           this.mapView.getModel().mapViewPosition, 
           AndroidGraphicFactory.INSTANCE) { 
    @Override 
    public boolean onTap(LatLong tapLatLong, Point layerXY, Point tapXY) { 
     ShowTapLocation(tapLatLong); 
     return true; 
    } 
}; 
+0

धन्यवाद, दोस्तों .... –

संबंधित मुद्दे