Ruby Geokit LatLng两点之间的中点
嗨,我正在使用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(
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到最接近的厘米