我在 MondoDB 和 C# 官方驱动程序中将 lat 和 lng 存储为双精度。在 MondoDB 内部(由驱动程序或实习生)四舍五入后,我的点与正确的位置不匹配。在发布到存储库之前,我已经搜索了所有可能的舍入,但没有找到任何东西。为什么不使用小数,因为 Query.Near 使用双精度数。
v1.6.5;C#v0.11 ; WIN64。
XX.444057295828145;XX.63416004180907 捕获为字符串 XX.444057295828145;XX.63416004180907 存储库在保存方法之前在 MongoDB 内部接收并返回:XX.4440572958281, XX.6341600418091 后返回 MongoDB
这导致了移动的地图。建议。谢谢。
我使用这个更新方法
public void SaveGeoPoints(String id, String lat, String lng)
{
//--> XX.444057295828145;XX.63416004180907
Db.repository.Update(
Query.EQ("_id", id),
Update.Set("Lat", double.Parse(lat))
.Set("Lng", double.Parse(lng)));
}