2010-06-03 9 views
5

मैं इस क्वेरी URLएंड्रॉइड: दो भू समन्वय के बीच पैदल दूरी कैसे प्राप्त करें?

http://maps.google.com/maps?q=from+A+to+B&output=kml

है, जो इस question का जवाब में दी गई है इस्तेमाल किया। लेकिन जब मैंने कोशिश की, यह निर्देशांक के साथ काम नहीं करता है। यह पता नामों के साथ काम करता है। मुझे लगता है कि मैं पहले पते प्राप्त करने के लिए Google के जियोकोडिंग का उपयोग कर सकता हूं। लेकिन मुझे आश्चर्य है कि दो निर्देशांकों के बीच पैदल दूरी पाने का कोई और तरीका है?

उत्तर

5

मेरी नई उत्तर :)

उपयोग Google Directions API

http://maps.google.com/maps/api/directions/<json|xml>?<params> पर अनुरोध करना और origin और destination पैरामीटर के रूप में समन्वय निर्दिष्ट करना संभव होना चाहिए। मैंने संक्षेप में इसकी कोशिश की लेकिन यह कोई परिणाम नहीं लौटा। उनके दस्तावेज़ों के साथ इसे काम करना चाहिए, लेकिन वे अक्षांश और देशांतर को निर्दिष्ट करने के तरीके में विस्तार से व्याख्या नहीं करते हैं। लेकिन वे कहते हैं कि यह संभव है। उद्धरण:

[...] मूल() की आवश्यकता - पता या शाब्दिक अक्षांश/देशांतर मूल्य जिसमें से आप दिशाओं की गणना करना चाहते हैं [...]

फिर भी, यह करना चाहिए शुरू करो मैं जेएसओएन आउटपुट प्रारूप के साथ जाने का सुझाव दूंगा। पार्स के लिए यह बहुत आसान है और कम बैंडविड्थ का उपयोग करना चाहिए (यह एक्सएमएल के रूप में कम वर्बोज़ है)।

यह काम करता है: http://maps.google.com/maps/api/directions/json?origin=49.75332,6.50322&destination=49.71482,6.49944&mode=walking&sensor=false

मेरी पिछला जवाब

सीधी रेखा दूरी आसानी से Haversine सूत्र का उपयोग कर निर्धारित किया जा सकता: यहाँ एक उदाहरण यूआरएल है। यदि आप Google से मार्ग पुनर्प्राप्त करते हैं, तो आप प्रत्येक सेगमेंट की दूरी की गणना कर सकते हैं और उन्हें जोड़ सकते हैं।

कुछ समय पहले, मैं नीचे लिखा (अच्छी तरह से जाना जाता है) एक ब्लॉग पोस्ट में एल्गोरिथ्म (Haversine) (python और pl/sql)

यहाँ अजगर कोड की प्रतिलिपि है:

from math import sin, cos, radians, sqrt, atan2 

    def lldistance(a, b): 
    """ 
    Calculates the distance between two GPS points (decimal) 
    @param a: 2-tuple of point A 
    @param b: 2-tuple of point B 
    @return: distance in m 
    """ 
    r = 6367442.5    # average earth radius in m 
    dLat = radians(a[0]-b[0]) 
    dLon = radians(a[1]-b[1]) 
    x = sin(dLat/2) ** 2 + \ 
     cos(radians(a[0])) * cos(radians(b[0])) *\ 
     sin(dLon/2) ** 2 
    #original# y = 2 * atan2(sqrt(x), sqrt(1-x)) 
    y = 2 * asin(sqrt(x)) 
    d = r * y 

    return d 

अनुवाद जावा के लिए यह छोटा होना चाहिए।

+0

धन्यवाद! लेकिन मैं पैदल दूरी में विशेष रूप से रूचि रखता हूं। अभी समस्या यह है कि मैं केवल निर्देशांक के साथ Google से मार्ग कैसे प्राप्त नहीं करता हूं। मैंने ब्राउज़र में निर्देशांक के साथ यूआरएल की कोशिश की, यह कहता है कि यह स्थान को समझ में नहीं आता है। – wei

+0

मुझे नहीं पता कि उत्तर में संपादन ने अधिसूचना शुरू की है ... इसलिए मैं अतिरिक्त रूप से इस टिप्पणी को लिखूंगा जिसकी देखभाल करनी चाहिए। – exhuma

+0

और अब यह काम करता है ... :) – exhuma

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