设为首页 加入收藏

TOP

MongoDB中空间数据的存储和操作(三)
2014-11-24 03:23:46 来源: 作者: 【 】 浏览:6
Tags:MongoDB 空间 数据 存储 操作
tmpres = col02c.Update(tmpQuery, tmpUpdate);
tmpUpdate = MongoDB.Driver.Builders.Update.Set("ymin", ymin);
tmpres = col02c.Update(tmpQuery, tmpUpdate);
}
}

然后是查询的代码:

[csharp] view plaincopyprint 01.//获取Collection
02. MongoDatabase db = server.GetDatabase("aa");
03. MongoCollection colSheng = db.GetCollection("zy02c");
04. //第一步,通过四边界筛选,
05. var query = Query.And(Query.GT("xmax", 91.0), Query.LT("xmin", 102.0), Query.GT("ymax", 33.0), Query.LT("ymin", 38.0));
06. var cur = colSheng.FindAs(query);
07. //定义第二空间运算时的条件多边形(Ogr格式的定义)
08. Geometry queryGeoLR = new Geometry(wkbGeometryType.wkbLinearRing);
09. queryGeoLR.AddPoint(91.0, 33.0,0);
10. queryGeoLR.AddPoint(102.0, 33.0,0);
11. queryGeoLR.AddPoint(102.0, 38.0,0);
12. queryGeoLR.AddPoint(91.0, 38.0,0);
13. queryGeoLR.AddPoint(91.0, 33.0,0);
14. Geometry queryGeo = new Geometry(wkbGeometryType.wkbPolygon);
15. queryGeo.AddGeometry(queryGeoLR);
16. //循环查询到的结果
17. var lst = cur.ToArray();
18. for (int i = lst.Length-1; i >=0; i--)
19. {
20. //获取当前记录对应的BsonDocument
21. BsonDocument doc = lst[i];
22. var id = doc["_id"]; //当前记录的ID
23. BsonDocument geo = doc["geo"].ToBsonDocument();
24. string geostr = geo[1].ToString(); //当前记录对应空间信息的Json字符串
25.
26. //通过Json串获取坐标值,并生成对应的Geometry对象
27. List coords = GetCoordLstFromString(geostr);
28. Geometry resGeoLR = new Geometry(wkbGeometryType.wkbLinearRing);
29. for (int j = 0; j < coords.Count / 2; j++)
30. {
31. resGeoLR.AddPoint_2D(coords[j], coords[j + 1]);
32. }
33. resGeoLR.AddPoint_2D(coords[0], coords[1]);
34. Geometry resGeo = new Geometry(wkbGeometryType.wkbPolygon);
35. resGeo.AddGeometry(resGeoLR);
36. //判断是该Geometry与条件多边形是否相交
37. if (resGeo.Intersects(queryGeo))
38. {
39. //do something
40. }
41. }

首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何删除表中的重复记录只保留其.. 下一篇SQLite学习手册(表达式)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)