为表'MSParcels'创建索引时出错:WriteConcern检测到错误'无法从对象,格式错误的几何体中提取地理位置键?:
{ type: "Polygon", coordinates:
[ [ [ -122.118466012, 47.6511409501, 0.0 ],
[ -122.118687874, 47.6508529655, 0.0 ],
[ -122.118817718, 47.650852731, 0.0 ],
[ -122.118890754, 47.650852592, 0.0 ],
[ -122.118891979, 47.651140118, 0.0 ],
[ -122.118703033, 47.6511404878, 0.0 ],
[ -122.118466012, 47.6511409501, 0.0 ] ] ] }
问题是,我正在从SQL Server复制,其中相同的坐标通过STIsValid
使用C#驱动程序MongoDB.Driver.Builders.IndexKeys.GeoSpatialSpherical
Mongo版本2.4.4
有什么建议吗?
答案 0 :(得分:1)
geojson对mongodb无效 - 它只接受x,y而不是z坐标(海拔高度)。这是因为它只具有2D索引/查询功能。
您需要从geojson文档中删除z坐标,如下所示:
{ type: "Polygon", coordinates:
[ [ [ -122.118466012, 47.6511409501],
[ -122.118687874, 47.6508529655],
[ -122.118817718, 47.650852731],
[ -122.118890754, 47.650852592],
[ -122.118891979, 47.651140118],
[ -122.118703033, 47.6511404878],
[ -122.118466012, 47.6511409501] ] ] }
有一项功能要求可以改善这一点 - 请投票赞成:SERVER-9220
答案 1 :(得分:0)
您的坐标无效。 geojson多边形是一组数组,其中两个坐标不是三个(额外的0.0)