शहरों के बीच दूरी खोजने का कार्य


9

मैं Google डॉक्स के साथ काम कर रहा हूं और निम्नलिखित फॉर्म की स्प्रेडशीट बनाना चाहता हूं:

पॉइंट ए पॉइंट बी माइलेज
लॉस एंजिल्स मियामी 292100
पालो अल्टो सैन फ्रांसिस्को 90

स्प्रेडशीट में, Mileageस्वचालित रूप से गणना की जाती है। मैं "दूरी संचालित" की तलाश में हूं, न कि "जैसा कि कौवा उड़ता है"।

क्या Google स्प्रेडशीट में कोई फ़ंक्शन है जो ऐसा कर सकता है?


जैसे-जैसे दूरी बढ़ती है, "ड्राइविंग दूरी" और "कौवा उड़ान" के बीच का अंतर उसी के अनुसार कम होता जाएगा। किसी भी मामले में वे संभवतः कुछ प्रतिशत से अधिक नहीं होंगे।

1
यह एक बहुत बोल्ड दावा, चरवाहे की तरह लगता है। क्या आप कह रहे हैं कि पोर्टलैंड से अतलंता तक गाड़ी चलाना उड़ान भरने के समान ही है? मुझे ऐसा नहीं लगता।
लैंडन कुह्न

1
@pnuts सहमत हैं, और मैं अपनी 4 साल पुरानी टिप्पणी का बचाव नहीं करने वाला हूं :)
लैंडन कुह्न

रोसार्च, 4 साल की अनुपस्थिति के बाद आप वेब एप्लिकेशन पर दोबारा गौर क्यों नहीं करते हैं और आपके प्रश्न पर प्राप्त सभी अच्छे उत्तरों की समीक्षा करते हैं?
जैकब जान टुंस्ट्रा

जवाबों:


9

निम्नलिखित छोटे कोड के साथ, आप दो बिंदुओं के बीच की दूरी को पुनः प्राप्त कर सकते हैं।

कोड

function getDirection(city1, city2, unit) {
  var directions = Maps.newDirectionFinder()
    .setOrigin(city1).setDestination(city2)
    .setMode(Maps.DirectionFinder.Mode.DRIVING)
    .getDirections();
  var d = directions.routes[0].legs[0].distance.text;

  var distance, value = d.split(" ")[0].replace(",", ""), text = d.split(" ")[1];
  if(text == unit) {
    distance = value;
  } else if(text == "km" && unit == "mi") {
    distance = value / 1.6;
  } else {
    distance = value * 1.6;
  }
  return Math.round(distance);
}

व्याख्या की

Google Apps स्क्रिप्ट के शीर्ष पर निर्मित MAPs API को मूल और गंतव्य के बीच पहली दिशा ( मार्ग [0] ) मिलेगी । लौटाया गया मान अल्पविराम से छीन लिया जाता है और पूर्णांक के रूप में पार्स किया जाता है।

स्क्रीनशॉट

यहाँ छवि विवरण दर्ज करें

ध्यान दें

लौटी दूरी या तो किलोमीटर या मील में हो सकती है । मैंने "के रूप में कौआ मक्खियों" के रूप में अच्छी तरह से (मील में) के लिए गणना जोड़ दी है।

स्प्रैडशीट में टूल्स> स्क्रिप्ट एडिटर के तहत स्क्रिप्ट जोड़ें । स्क्रिप्ट एडिटर में बग बटन दबाएं और आप चलते बने !!

उदाहरण

मैंने आपके लिए एक उदाहरण फ़ाइल बनाई है: ड्राइविंग दूरी प्राप्त करें

संदर्भ


1
ऐसा लग रहा है कि सैंपल डॉक में फार्मूला अब लगातार काम नहीं कर रहा है। क्या कोई इसे काम करने के लिए संपादित कर सकता है? मुझे स्क्रिप्टिंग (नकल करने और चिपकाने से ज्यादा) के बारे में कुछ नहीं पता है और मुझे आपकी मदद पसंद होगी! मैं सब देख रहा हूँ ज़िप कोड के बीच ड्राइविंग दूरी है। धन्यवाद!
मेलिसा

3

Google स्प्रेडशीट में:

=importXML("http://mapquestapi.com/directions/v1/route?  
  key=YOUR_KEY_HERE&outFormat=xml&from=" & A2 & "&to=" 
  & B2,"//response/route/distance")

जहां A2मूल है और B2गंतव्य है।

आपको मैपक्वेस्ट से एक एपीआई कुंजी प्राप्त करना होगा और YOUR_KEY_HEREइसके साथ मूल्य को बदलना होगा।


1
आपको एपीआई कुंजी कैसे मिलती है?
जैकब जान तुंस्ट्रा

1
@JacobJanTuinstra developer.mapquest.com
नील

नील, तुम्हारा जिंदा !! साझा करने के लिए धन्यवाद।
जैकब जान तुइस्ट्रा

+1 स्पष्ट रूप से सुरुचिपूर्ण समाधान, हालांकि MapQuest थोड़ा घटिया है। मुझे दी गई कुंजी का उपयोग करने की कोशिश करते समय मुझे यह त्रुटि मिली: "यह कुंजी इस सेवा के लिए अधिकृत नहीं है। यदि आपके पास कुंजी नहीं है, तो आप developer.mapquest.com पर पंजीकरण करके एक मुफ्त कुंजी प्राप्त कर सकते हैं ।"
निक बोल्टन

1

यह मेरे लिए काम करता है:

=importXML("http://maps.googleapis.com/maps/api/distancematrix/xml?&origins="& <point.A> & "&destinations=" & <point.B>; "//distance/value")

इससे (मीटर के अनुसार, Google मानचित्र के अनुसार) संचालित दूरी <point.A>और <point.B>मीटर में मिल जाएगी।


यह भी खूब रही! कैसे के बारे में के रूप में कौवा मक्खियों दूरी?
डस्टिन किर्कलैंड

0

मुझे नहीं लगता कि ऐसा करने के लिए एक्सेल फ़ंक्शन, या एक्सटेंशन में बनाया गया है।

आप इस स्रोत फोर्ज पृष्ठ को देखना चाह सकते हैं: http://zips.sourceforge.net/

  • यह ज़िप कोड को Lat / Long (मुख्य रूप से केंद्र बिंदु) में परिवर्तित करने के लिए CSV डेटासेट प्रदान करता है
  • यह दो लाट / लंबे निर्देशांक के बीच "कौवा मक्खियों" की दूरी की गणना करने के लिए एक्सेल कोड प्रदान करता है। (और जावा, पीएचपी और पायथन के लिए बराबर कोड शामिल है।

एक्सेल फ़ंक्शन है

=IF(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1 - Long2) > 1,
  RadiusofEarth * ACOS(1), RadiusofEarth *
  ACOS(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1-Long2)))

पृष्ठ नोट करता है कि कोणों को रेडियंस में होना चाहिए और एक्सेल में रेडियंस रूपांतरण फ़ंक्शन के लिए एक डिग्री है:

=RADIAN(degrees)

जब तक किसी और के पास एक सुस्त जवाब नहीं है, यह आपको प्राप्त करना चाहिए जो आप बहुत अधिक काम के बिना चाहते हैं।


हाँ, लेकिन "के रूप में कौवा मक्खियों" के बजाय दूरी के बारे में क्या?

1
यह काफी कठिन है और सभी रोडवेज के ज्ञान की आवश्यकता होगी, जैसा कि Mapquest, Google Earth, Streets & Trips (या MapPoint) में किया जाता है। मुझे नहीं पता कि इनमें से किसी ऐप के पास उपयुक्त एपीआई है या नहीं।

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

1
ओपी Google स्प्रेडशीट का उपयोग करता है।
जैकब जान टुंस्ट्रा

दिलचस्प सूत्र के कारण +1, हालांकि मुझे लगता है कि इसका उपयोग करना संभवतः अव्यवहारिक है।
निक बोल्टन


-1

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


1
क्या आप "पूर्ण निर्देशों" के कुछ प्रमुख बिंदुओं को संक्षेप में प्रस्तुत कर सकते हैं? उत्तर अकेले खड़े होने चाहिए और बाहरी स्रोतों पर निर्भर नहीं होने चाहिए (हालांकि मुझे पता है कि इसकी संभावना कम है कि Google साइट गायब हो जाएगी)। धन्यवाद!
jonsca

-2

मैं आपको यह बताने के लिए एपीआई के साथ पर्याप्त रूप से परिचित नहीं हूं कि यह कैसे करना है, लेकिन मुझे लगता है कि Google मैप्स एपीआई का उपयोग करना संभव होगा ।

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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.