Belirli bir yerde enlem ve boylam var ve mesafeyi hesaplamak istiyorum, böylece nasıl hesaplayabilirim?Enlem ve boylam iki nokta arasındaki mesafeyi nasıl hesaplayabilirim?
cevap
CLLocation *location1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];
NSLog(@"Distance i meters: %f", [location1 distanceFromLocation:location2]);
[location1 release];
[location2 release];
Ayrıca projeye CoreLocation.framework
ekleyin ve import ifadesini eklemeniz gerekir:
#import <CoreLocation/CoreLocation.h>
Bu bunu yapmanın en etkili yöntem olmayabilir, ancak işe yarayacaktır.
Enlem ve boylam ile belirtilen iki konumunuz vektörler olarak kabul edilebilir. Koordinatların kartesion koordinatlarına dönüştürüldüğü varsayıldığında, iki vektörün nokta çarpımını hesaplayın.
Verilen v1 = (x1, y1, z1) ve v2 = (x2, y2, z2), sonra ...
v1 dot v2 = magnitude(v1) * magnitude(v2) * cos (theta)
elverişli, v1 ve v2 büyüklüğü aynı olacaktır .. dünyanın (R) yarıçapı.
x1*x2 + y1*y2 + z1*z2 = R*R*cos(theta)
Teta için çözün.
theta = acos ((x1*x2 + y1*y2 + z1*z2)/(R * R));
Artık iki vektör arasında radyan cinsinden açı var. toprak yüzeyinin böylelikle olduğunu genelinde seyahat eden iki nokta betwen mesafe ...
distance = theta * R.
Orada tamamen küresel koordinatlar kapsamında Bunu yapmanın daha kolay bir yolu daha var ama o bölgede benim matematik çok olduğu bulanık - dolayısıyla kartezyen koordinatlara dönüşüm.
... kartezyen koordinat dönüştürmekLet alfa enlem olmak ve beta boylam olmak.
x = R * cos (alpha) * cos (beta)
y = R * sin (alpha)
z = R * cos (alpha) * sin (beta)
Matematik işlevinin genellikle radyanlarla uğraştığını ve enlem/boylam derecelerinin derece olarak çalıştığını unutmayın.
Bu bir yaklaşımdır, çünkü toprak daha fazla bir oblik sferoidin (daha hassas olması için armut şeklinde yapılmış) ve yüzeyi düz değil. – outis
Dünya için küresel bir model (http://trac.osgeo.org/proj/wiki/GeodesicCalculations) kullanma hatasıyla ilgili bir tartışma için 'proj.4' web sitesine bakın. Alt satırda, R için iyi bir değer seçerseniz, bu yaklaşımla% 1'e varabilirsiniz. – mtrw
+1. Muhtemelen bu cevap "Büyük daire rotası nasıl hesaplanır" (deniz navigasyon terimi) olarak adlandırılabilir. UPVOTE DISCLAIMER: Bu konuda matematik doğrulamak için sıfır yeteneğim var. Ben sadece onu üreten yeteneği kıskanıyorum ve net sunumu saygılıyorum. – Smandoli
Matematikten geçtim ve şimdi çözümü çok kolaylaştırabilirim.
Dünyayı döndürüp, ilk vektörün 0 derece enlem ve 0 derece boylamında olduğunu düşünün. İkinci vektör, (alpha2-alfa1) derece enlem ve (beta2-beta1) derecelerde enlemdedir. Yana
...
sin(0) = 0 and cos(0) = 1
eden nokta ürün simplies için ...
cos(delta_alpha) * cos(delta_beta) = cos(theta)
matematik kalanı değişmeden kalır.
theta = acos (cos(delta_alpha) * cos(delta_beta))
distance = radius * theta
Bu yardımcı olur umarım.
- 1. İki enlem ve boylam arasındaki orta nokta
- 2. OpenLayers: İki nokta arasındaki mesafeyi nasıl hesaplarsınız?
- 3. Enlem ve boylam bilinen bir nokta olduğunda 100 metre mesafeyi hesaplayın
- 4. Yalnızca iki alt nokta arasındaki mesafeyi ayarlayın. Matplotlib
- 5. C'deki 2 Enlem/Boylam puanları arasındaki yön #
- 6. Boylam ve enlem değerlerini depolamak için Django'da kullanılacak Model Alanı?
- 7. İki nokta arasındaki mesafeyi hesaplamak en iyisi hangisi?
- 8. Izgarada 2 nokta arasındaki mesafeyi bulun
- 9. Enlem, Boylam Grabber
- 10. enlem ve boylam sınırlayıcı kutu?
- 11. nesnel C enlem ve boylam
- 12. Pozitif/Negatif Enlem ve Boylam değerleri
- 13. Boylam/enlem için KDTree
- 14. Maxmind - Enlem ve Boylam Posta Kodu
- 15. En yakın enlem ve boylam noktalarını bul
- 16. Yahoo Weather Sorgu Enlem ve Boylam ile
- 17. Bilinmeyen gelocation/enlem boylam biçimi
- 18. İki nokta arasındaki Matlab açısı
- 19. Enlem/boylam koordinatları MKMapItem'den nasıl çekilir
- 20. MongoDB iki nokta arasındaki baskı mesafesi
- 21. Coğrafi nokta ile belirli bir çokgen arasındaki mesafe nasıl hesaplanır?
- 22. TIF ve 4 köşeli geotiff oluşturma ve enlem ve boylam
- 23. İki tarih arasındaki ayın sayısını nasıl hesaplayabilirim? C#
- 24. Konumum (boylam ve enlem), başkalarına yanıt sms olarak nasıl gönderilir?
- 25. NetCDF değişkeninden boylam ve enlem değeri nasıl alınır?
- 26. Android'de boylam ve enlem ile şehir sıcaklığı nasıl bulunur?
- 27. Latitude ve ben enlem ve resimden boylam bilgilerini istediğiniz resmin
- 28. Android: iki konum arasındaki mesafeyi hesaplamak için en iyi yöntem
- 29. MongoDB'deki birçok GeoJSON puanı arasındaki rota mesafesini nasıl hesaplayabilirim?
- 30. İki nokta arasında iki nokta arasında "iki nokta" yı kullanın()
Enlem ve boylam uzaklıklarına erişemezsiniz. Mesafe iki enlem ve boylam gerektirir. –
Bu son birkaç SO sorularının konusu olmuştur, etrafa bir göz atın. –
2 enlem ve Boylam var ... –