2010-07-20 4 views
8

मेरे पास एक नक्शादृश्य है जहां मैं उपयोगकर्ता के वर्तमान स्थान को ट्रैक करना चाहता हूं। जीपीएस के साथ-साथ 'वायरलेस नेटवर्क का उपयोग' मेरे फोन सेटिंग्स में सक्रिय है। फिर भी, क्योंकि मैं इनडोर हूं, मुझे एक जीपीएस फिक्स नहीं मिलता है, इसलिए स्थान नेटवर्क के माध्यम से निर्धारित किया जाता है; वाईफाई स्पॉट उपलब्ध है।Google मानचित्र और मानचित्रदृश्य वाले ऐप्स के पास अलग-अलग स्थितियां हैं

मेरे पास Google मानचित्र ऐप चल रहा है साथ ही साथ मेरा एप्लिकेशन चल रहा है।

आश्चर्यजनक रूप से, वर्तमान स्थान Google मानचित्र और मेरे एप्लिकेशन के बीच भिन्न होता है, जहां मेरे ऐप में Google मानचित्र बहुत सटीक है, स्थान किसी भी तरह से 100 मीटर दूर है।

अपने आवेदन में मैं मूल रूप से करते हैं (अब डीबगिंग उद्देश्यों के लिए) के बाद:

1) शुरू में नक्शे पर एक मार्कर: geopoint locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

2 के माध्यम से लिया गया) शुरू में नक्शे पर किसी अन्य मार्कर : locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

के माध्यम से जियोपॉइंट पुनर्प्राप्त किया गया यह दोनों प्रदाताओं के अंतिम ज्ञात स्थानों को नक्शे पर (आखिर में आखिरी बार मेरे ऐप के बाहर से जाना जाता है) डाल देगा।

3) तो के लिए नियमित रूप से अपडेट (के बाद से मैं एक जीपीएस यहाँ वैसे भी घर के अंदर ठीक नहीं मिलता है), मुझे क्या करना:

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, baseLocationListener); 

आप आवृत्ति और दूरी के लिए देख सकते हैं मैं में 0 परम पारित दोनों घटनायें।

ऐप्लिकेशन मेनिफेस्ट में, निम्न अनुमतियों प्रदान किए जाते हैं:

android.permission.ACCESS_COARSE_LOCATION 
android.permission.ACCESS_FINE_LOCATION 
android.permission.ACCESS_MOCK_LOCATION 

असल में मेरी baseLocationListener कहा जाता हो जाता है, जो मैं लॉग में देखते हैं, लेकिन अपडेट किए गए स्थान को किसी भी तरह अंतिम ज्ञात वर्तमान स्थिति के समान ही है (LocationManager.NETWORK_PROVIDER का), वही lat/lng।

मैंने सोचा कि शायद मैंने कुछ अनदेखा किया है या पैरामीटर या सेटिंग को याद किया है, या मेरे कोड में एक बग है। इसलिए मैंने एंड्रॉइड मार्केट से कुछ अन्य (3 में कुल) एलबीएस ऐप इंस्टॉल किए जो वर्तमान उपयोगकर्ता के स्थान को भी दिखाते हैं। उन ऐप्स में प्रदर्शित वर्तमान स्थान मेरे आवेदन में से एक के बराबर हैं - और वे सभी 100 मीटर दूर हैं - लेकिन कम से कम सभी समान हैं। screenshot http://img33.imageshack.us/img33/8679/mapproblem.png

http://img33.imageshack.us/img33/8679/mapproblem.png

अब मैं सोच रहा हूँ:

1) के रूप में मैं समझता हूँ, getLastKnowLocation सिस्टम-वाइड और न एप्लिकेशन चौड़ा, क्यों हो रहा है

स्क्रीनशॉट यहाँ देखें Google मानचित्र और अन्य सभी ऐप्स में स्थान के बीच अंतर है?

2) क्या Google मानचित्र प्रदाता के अंतिम ज्ञात स्थान को अपडेट नहीं करता है?

3) गूगल मैप्स किसी भिन्न कस्टम स्थान प्रदाता (अर्थात लाइसेंस कारणों की वजह से) अन्य GPS_PROVIDER या NETWORK_PROVIDER से इस्तेमाल कर रहा है के रूप में वे SDK में कर रहे हैं?

4) Google मानचित्र जैसे नेटवर्क्स_PROVIDER के साथ सटीक परिणाम कैसे प्राप्त करें?

+0

क्या यह संभव है कि Google मानचित्र सिर्फ जीपीएस से प्राप्त अंतिम स्थान का उपयोग कर रहा है, क्योंकि नेटवर्क के माध्यम से यह जानता है कि आप बहुत दूर नहीं गए हैं? दूसरे शब्दों में, Google मानचित्र ऐप जानता है कि आप अंदर गए थे (चूंकि जीपीएस चला गया था लेकिन नेटवर्क स्थान अभी भी उपलब्ध है), और इसलिए यह अंतिम ज्ञात जीपीएस पॉइंट स्टोर करता है और इसका उपयोग करता है? – Nate

+0

मुझे ऐसा नहीं लगता है। मैंने एक ही समय में सभी अनुप्रयोगों को चलाया, इसलिए स्थिति एक ही समय में अलग नहीं होनी चाहिए। बस कुछ ही मिनट पहले मैंने इसे बाहर भी परीक्षण किया और लंबी दूरी के लिए बस पर भी चला गया। गूगल मैप्स एपीआई टाइल्स निश्चित रूप से गलत हैं, नीचे मेरा उत्तर देखें जो मूल रूप से इसे साबित करता है। इसके अलावा मैंने जीएसएम/वाईफ़ाई का उपयोग करके केवल जीपीएस के साथ परीक्षण किया, यह सब इसके परिणामस्वरूप। इसके अलावा, getLastKnowLocation सिस्टम-व्यापी है, ऐप-वाइड नहीं है। यदि Google मानचित्र इसका उपयोग करता है, तो मुझे अपने ऐप में भी वही स्थिति मिलनी चाहिए। –

+0

असल में, मुझे संभवतः Google मानचित्र के रूप में GetLastKnowLocation से वही लैट/एलएनजी मिलता है, लेकिन यह अलग-अलग गलत नक्शा टाइल्स पर गलत तरीके से प्रदर्शित होता है (वेब ​​एपीआई से उदाहरण के रूप में नीचे जवाब देखें)। –

उत्तर

2

मुझे लगता है कि मुझे एक जवाब मिला, हालांकि समाधान नहीं। ऐसा लगता है कि समस्या विभिन्न मानचित्र प्रदाता की डेटा गुणवत्ता में है जिसका उपयोग Google मानचित्र और एसडीके में मैप व्यू के लिए किया जाता है, जो भिन्न होता है।

नक्शा टाइल्स निर्देशांक सार्वजनिक Google मानचित्र वेब एपीआई/टाइल्स की तरह ही सटीक प्रतीत नहीं होते हैं।

उदाहरण के लिए यह स्क्रीनशॉट देखें, जहां मैंने एक ही भौगोलिक बिंदु पिन किया था। screenshot http://img339.imageshack.us/img339/2793/gmaps2.png http://img339.imageshack.us/i/gmaps2.png/

नक्शा सार्वजनिक मानचित्र एपीआई का उपयोग कर कुछ सौ मीटर दूर है। लगता है कि हमें बस इसके साथ रहना है? :(

+0

अद्यतन: दिलचस्प बात यह है कि उपग्रह दृश्य काफी सटीक प्रतीत होता है, केवल सड़क दृश्य नहीं है।मतलब, सड़क दृश्य के साथ उपग्रह ओवरले करना संभवतः विभिन्न मानचित्र सामग्री प्रदाताओं के कारण मेल नहीं लगता है। सैटेलाइट व्यू का हमेशा उपयोग करने के लिए सबसे अच्छा, कम से कम ग्रामीण क्षेत्रों में जहां मानचित्र सामग्री गलत है। –

0

गूगल मैप्स में मानचित्र और उपग्रह चित्र मीटर के एक जोड़े से बंद है, लेकिन मुझे नहीं लगता कि यह बंद है कि ज्यादा होना चाहिए। यह कुछ सौ मीटर की दूरी पर हो रहा है।

पर निर्भर करता है आप कैसे हासिल कर ली अपनी स्थिति को क्या स्थिति आप प्राप्त हुक्म होगा। मैं क्या समझ से, इन अधिग्रहण के तीन स्तर हैं।

  • जीपीएस
  • नेटवर्क
  • वाईफ़ाई

जीपीएस और नेटवर्क त्रिकोण द्वारा निर्धारित किए जाते हैं। जीपीएस सबसे सटीक है। वाईफ़ाई "व्हाइस" का उपयोग करके किया जाता है, एक पता अधिग्रहित किया जाता है और फिर geocoded, कभी-कभी पूरी तरह से गलत है।

कुछ फोन कहना है कि वे जीपीएस हैं, लेकिन वे iPhone की तरह सबसे अधिक संभावना छद्म जीपीएस हैं 1.

+0

स्पष्टीकरण के लिए धन्यवाद, लेकिन यह वास्तव में ऊपर वर्णित व्यवहार की व्याख्या नहीं करता है। 'Google मानचित्र' वास्तव में समस्या नहीं है, वास्तव में, Google मानचित्र पर, स्थान बहुत सटीक है, यह केवल मेरे ऐप के अंदर MapView के साथ है। बेशक, जीपीएस, वाईफ़ाई और जीएसएम की सटीकता भिन्न होती है (एक अच्छा विवरण यहां है btw: http://forum.sdx-developers.com/android-2-1-development/cdma-lockup-wifi-use-wireless- नेटवर्क-और-जीपीएस!/msg22834/# msg22834), लेकिन यह मेरे ऐप में Google मानचित्र के साथ-साथ मेरे MapView के समान होना चाहिए। नीचे मेरा उत्तर और उपरोक्त टिप्पणियां देखें, यह मुझे मिली तार्किक स्पष्टीकरण है। –

+0

> "यह कुछ सौ मीटर लगता है।": लेकिन वास्तव में: कुछ हंडर्ट मीटर इससे कोई फर्क नहीं पड़ता कि आपका ऐप किसी ऐसे शहर में पैदल यात्री नेविगेशन कर रहा है जहां सड़कों के नजदीक हैं। पूरे नेविगेशन से सौ मीटर दूर बेकार है। –

2

मैं जानता हूँ कि अपनी पोस्ट एक साल पुराना है, लेकिन इस सवाल का जवाब मुझे लगता है कि यह है: में गूगल मानचित्र डेटा चीन ऑफसेट या विकृत है। मैंने देखा कि आप दक्षिण चीन में हैं। चीन सरकार को कुछ सुरक्षा कारणों से आवश्यकता है। Here is the Google search results

परिवर्तन एल्गोरिदम अज्ञात है। शायद आप इसे Google कर सकते हैं, और आपको शुभकामनाएं देते हैं।

+0

हाय फ्रैंक, संकेत के लिए धन्यवाद, मुझे इसके बारे में पता नहीं था, लेकिन यह समझ में आता है। –

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