Ruby Geokit LatLng两点之间的中点

Ruby Geokit LatLng两点之间的中点,ruby,geolocation,geocoding,latitude-longitude,geokit,Ruby,Geolocation,Geocoding,Latitude Longitude,Geokit,嗨,我正在使用ruby Geokit::LatLng类来存储纬度和经度,并试图在几个点之间找到中点。我注意到这个宝石有问题,或者我可能误解了这个概念 a = Geokit::LatLng.new(13.0627081,80.274658) b = Geokit::LatLng.new(12.8550615,80.2264393) 当我计算中点_to方法来计算这些点之间的中点时,我注意到它们给出了不同的结果 a.midpoint_to(

嗨,我正在使用ruby Geokit::LatLng类来存储纬度和经度,并试图在几个点之间找到中点。我注意到这个宝石有问题,或者我可能误解了这个概念

          a = Geokit::LatLng.new(13.0627081,80.274658)
          b = Geokit::LatLng.new(12.8550615,80.2264393)
当我计算中点_to方法来计算这些点之间的中点时,我注意到它们给出了不同的结果

          a.midpoint_to(b) 
<Geokit::LatLng:0x0000000292f368 @lat=12.95888590853612, @lng=80.25053859693796> 

          b.midpoint_to(a)
<Geokit::LatLng:0x00000002933f80 @lat=12.958885908536992, @lng=80.250538596>

能解释一下这里发生了什么吗。a到b之间的中点应该与b到a相同,或者a到b之间的中点在纬度和经度上不同,反之亦然

中点不能位于纬度/经度之间的中间位置

a点

经纬度 22.57265 88.36389

b点

经纬度 27.66483-81.51575

本页显示如何计算


可能有助于理解a到b之间的公式,反之亦然

中点不能位于纬度/经度之间的中间位置

a点

经纬度 22.57265 88.36389

b点

经纬度 27.66483-81.51575

本页显示如何计算


可能有助于理解公式在您的示例中,两点是相同的,非常接近。这是值得识别的差异-即为什么你没有得到相同的对象:

a.midpoint_to(b) 
<Geokit::LatLng:0x0000000292f368 @lat=12.95888590853612, @lng=80.25053859693796> 

b.midpoint_to(a)
<Geokit::LatLng:0x00000002933f80 @lat=12.958885908536992, @lng=80.250538596>
输出为:

Mid-points are the same location

如果您进行了更复杂的计算,您可能更喜欢使用略高于0.0的数字,例如1e-5到最接近的厘米。

在您的示例中,两点是相同的,非常接近。这是值得识别的差异-即为什么你没有得到相同的对象:

a.midpoint_to(b) 
<Geokit::LatLng:0x0000000292f368 @lat=12.95888590853612, @lng=80.25053859693796> 

b.midpoint_to(a)
<Geokit::LatLng:0x00000002933f80 @lat=12.958885908536992, @lng=80.250538596>
输出为:

Mid-points are the same location
如果您进行了更复杂的计算,您可能更喜欢使用略高于0.0的数字,例如1e-5到最接近的厘米