2012-05-20 12 views
7

मैंने अक्षांश और देशांतर के लिए निर्देशांक दिए हैं, और मैं उन लोगों के साथ एक स्थान वस्तु बनाना चाहता हूं। कोई ऐसा कन्स्ट्रक्टर नहीं है जो स्थान बनाने के लिए दोगुना हो जाता है, इसलिए मैंने इस तरह की कोशिश की:निर्देशांक से स्थान प्राप्त करना

Location l = null; 
l.setLatitude(lat); 
l.setLongitude(lon); 

लेकिन यह दुर्घटनाग्रस्त हो जाता है। कोई अलग विचार?

+2

एल रिक्त है। आप विधियों को कैसे बुला रहे हैं ?? –

+0

क्योंकि कोई ऐसा निर्माता नहीं था जो तर्क के रूप में दो युगल लेता है, और बाद में मैंने सीखा कि प्रदाता के रूप में कोई स्ट्रिंग देकर किया जा सकता है। – NiVeR

उत्तर

14

बस नए स्थान ("reverseGeocoded") के साथ एक नया स्थान बनाने के; इस

GeoPoint newCurrent = new GeoPoint(59529200, 18071400); 
     Location current = new Location("reverseGeocoded"); 
     current.setLatitude(newCurrent.getLatitudeE6()/1e6); 
     current.setLongitude(newCurrent.getLongitudeE6()/1e6); 
     current.setAccuracy(3333); 
     current.setBearing(333); 
+0

मैं अब कोशिश करूँगा, धन्यवाद। – NiVeR

+0

शानदार! धन्यवाद –

4

यह क्रैश क्योंकि आप किसी मौजूदा वस्तु पर विधियों को कॉल नहीं कर सकते हैं।

मुझे लगता है कि आप एंड्रॉइड.लोकेशन के बारे में बात कर रहे हैं। स्थान?

यह आमतौर पर एंड्रॉइड की विभिन्न पोजीशनिंग सेवाओं द्वारा लौटाया जाता है। आप इसके साथ क्या करना चाहते हैं?

क्या आप इसे geocode को रिवर्स करना चाहते हैं? उस भू समन्वय के लिए एक पता खोजने के रूप में?

या आप इसे "नकली" स्थिति के रूप में उपयोग करना चाहते हैं और इसे अन्य अनुप्रयोगों में फ़ीड करना चाहते हैं?

बीटीडब्ल्यू दो रचनाकार हैं। कोई एक पोजीशनिंग सेवा का नाम लेता है और दूसरा एक कॉपी कन्स्ट्रक्टर है और एक मौजूदा स्थान लेता है।

तो आप इस प्रकार का स्थान बना सकते हैं:

Location l = new Location("network"); 

लेकिन मुझे नहीं लगता कि यह कुछ आप करना चाहते हैं का परिणाम देगा है।

यहाँ प्रलेखन के लिए एक लिंक है:

https://developer.android.com/reference/android/location/Location.html#Location%28java.lang.String%29

+0

नहीं। मैं जो कर रहा हूं वह है, दिए गए स्थान के लिए आस-पास के स्थानों को प्राप्त करने के लिए Google स्थल API का उपयोग करें और मुझे स्थानों और वर्तमान स्थान के बीच की दूरी की गणना करने की आवश्यकता है। मैंने distanceto() विधि देखी लेकिन यह स्थान वस्तु को स्वीकार करता है। इसलिए मुझे लॉन से स्थान बनाना है और लेटर जेएसओएन ऑब्जेक्ट में Google से लौटा है। – NiVeR

1
Location l = new Location("any string"); 
l.setLatitude(lat); 
l.setLongitude(lon); 
0

की तरह इस प्रयास करें:

public double lat; 
public double lon; 

public void onLocationChanged(Location loc) 
{ 
lat=loc.getLatitude(); 
lon=loc.getLongitude(); 
Toast.makeText(getBaseContext(),"Latitude:" + lat +Longitude"+lon,Toast.LENGTH_LONG).show();  
}