2015-11-25 13 views
5

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

तो, मैं लैट 1, लोन 1, लैट 2, लोन 2 और फ़ंक्शन पर% निर्दिष्ट करता हूं, और यह एक बिंदु देता है, उदाहरण के लिए, पहले बिंदु से दूसरे बिंदु से 20% दूर।

+1

यदि आप Google मानचित्र एपीआई के साथ काम कर रहे हैं, तो [इंटरपोलेट] (https://developers.google.com/maps/documentation/javascript/reference#spherical) पर एक नज़र डालें जो दो अन्य बिंदुओं के बीच एक बिंदु की गणना करता है उनके बीच कुछ अंश (0-1) पर। –

उत्तर

10

समन्वय मानना ​​एक दशमलव संख्या है। आप इस समीकरण का उपयोग कर सकते हैं।

function midpoint(lat1, long1, lat2, long2, per) { 
    return [lat1 + (lat2 - lat1) * per, long1 + (long2 - long1) * per]; 
} 

प्रतिशत (जैसे प्रति = 0.2% 20%) के आधार पर [लेट, लांग] का एक नया वांछित समन्वय लौटाएं।

+2

लेट लम्बाई का मध्य बिंदु सामान्य रूप से इस सूत्र द्वारा गणना की गई मिडपॉइंट नहीं है, क्योंकि वे एक क्षेत्र पर समन्वयित होते हैं, न कि एक सपाट सतह। – spirographer

+2

Iguiel मैंने इसके बारे में भी सोचा लेकिन यह ऐसा काम नहीं करता है। पी 1 (37.740675, -25.661043) और पी 2 (37.7380 9 6, -25.669267) के लिए, उदाहरण के लिए, 20% पी 3 (7.5478771, -5,133031) देता है। यह मुझे पी 1 और पी 2 के बीच अज़ोरेस द्वीपों के बजाय अफ्रीका में रखता है। –

+1

हाय स्विफ्ट-आर, मुझे लगता है, मुझे लगता है कि मेरे समीकरण में कोई गलती है, यह होना चाहिए: [lat1 + (lat2-lat1) * प्रति, long1 + (long2-long1) * प्रति] मैं अपना उत्तर संपादित करूंगा। आशा है कि ये आपके काम आएगा। – lguiel

1

यहाँ एक संदर्भ बहुत मदद मिलेगी कि (नीचे की जाँच)

http://www.movable-type.co.uk/scripts/latlong.html

मध्यवर्ती बिंदु है

दो अंक के बीच महान चक्र मार्ग के किनारे किसी भी अंश पर एक मध्यवर्ती बिंदु कर सकते हैं भी गणना की जाएगी।

सूत्र:

a = sin((1−f)⋅δ)/sin δ 
b = sin(f⋅δ)/sin δ 
x = a ⋅ cos φ1 ⋅ cos λ1 + b ⋅ cos φ2 ⋅ cos λ2 
y = a ⋅ cos φ1 ⋅ sin λ1 + b ⋅ cos φ2 ⋅ sin λ2 
z = a ⋅ sin φ1 + b ⋅ sin φ2 
φi = atan2(z, √x² + y²) 
λi = atan2(y, x) 

जहां महान चक्र मार्ग के साथ अंश है (च = 0, च = 1 बिंदु 2 बिंदु 1 है), δ दो बिंदुओं के बीच कोणीय दूरी डी/आर है।

+0

मुझे समझ में नहीं आता जहां प्रतिशत आता है। –

+0

* एफ * बिंदु 1 से बिंदु 2 का अंश है। प्रतिशत एक अंश है जहां denominator 100 है। उदाहरण के लिए, यदि आपका प्रतिशत 39% है, तो अंश * f = 39/100 *। – spirographer

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