- DocumentDB 教程
- DocumentDB - 首页
- DocumentDB - 简介
- DocumentDB - 优势
- DocumentDB - 环境设置
- DocumentDB - 创建账户
- DocumentDB - 连接账户
- DocumentDB - 创建数据库
- DocumentDB - 列出数据库
- DocumentDB - 删除数据库
- DocumentDB - 创建集合
- DocumentDB - 删除集合
- DocumentDB - 插入文档
- DocumentDB - 查询文档
- DocumentDB - 更新文档
- DocumentDB - 删除文档
- DocumentDB - 数据建模
- DocumentDB - 数据类型
- DocumentDB - 限制记录
- DocumentDB - 排序记录
- DocumentDB - 索引记录
- DocumentDB - 地理空间数据
- DocumentDB - 分区
- DocumentDB - 数据迁移
- DocumentDB - 访问控制
- DocumentDB - 数据可视化
- DocumentDB 有用资源
- DocumentDB - 快速指南
- DocumentDB - 有用资源
- DocumentDB - 讨论
DocumentDB - 地理空间数据
Microsoft 添加了地理空间支持,允许您在文档中存储位置数据,并对点和多边形之间的距离和交集执行空间计算。
空间数据描述了对象在空间中的位置和形状。
通常,它可以用来表示一个人的位置、一个感兴趣的地方,或者一个城市或湖泊的边界。
常见的用例通常涉及邻近查询。例如,“查找我当前位置附近的全部大学”。
一个点表示空间中的单个位置,表示确切位置,例如特定大学的街道地址。点在 DocumentDB 中使用其坐标对(经度和纬度)表示。以下是一个 JSON 点的示例。
{ "type":"Point", "coordinates":[ 28.3, -10.7 ] }
让我们来看一个包含大学位置的简单示例。
{ "id":"case-university", "name":"CASE: Center For Advanced Studies In Engineering", "city":"Islamabad", "location": { "type":"Point", "coordinates":[ 33.7194136, -73.0964862 ] } }
要根据位置检索大学名称,您可以使用以下查询。
SELECT c.name FROM c WHERE c.id = "case-university" AND ST_ISVALID({ "type":"Point", "coordinates":[ 33.7194136, -73.0964862 ] })
执行上述查询后,您将收到以下输出。
[ { "name": "CASE: Center For Advanced Studies In Engineering" } ]
在 .NET 中创建包含地理空间数据的文档
您可以创建一个包含地理空间数据的文档,让我们来看一个创建大学文档的简单示例。
private async static Task CreateDocuments(DocumentClient client) { Console.WriteLine(); Console.WriteLine("**** Create Documents ****"); Console.WriteLine(); var uniDocument = new UniversityProfile { Id = "nust", Name = "National University of Sciences and Technology", City = "Islamabad", Loc = new Point(33.6455715, 72.9903447) }; Document document = await CreateDocument(client, uniDocument); Console.WriteLine("Created document {0} from typed object", document.Id); Console.WriteLine(); }
以下是 UniversityProfile 类的实现。
public class UniversityProfile { [JsonProperty(PropertyName = "id")] public string Id { get; set; } [JsonProperty("name")] public string Name { get; set; } [JsonProperty("city")] public string City { get; set; } [JsonProperty("location")] public Point Loc { get; set; } }
编译并执行上述代码后,您将收到以下输出。
**** Create Documents **** Created new document: nust { "id": "nust", "name": "National University of Sciences and Technology", "city": "Islamabad", "location": { "type": "Point", "coordinates": [ 33.6455715, 72.9903447 ] }, "_rid": "Ic8LAMEUVgANAAAAAAAAAA==", "_ts": 1450200910, "_self": "dbs/Ic8LAA==/colls/Ic8LAMEUVgA=/docs/Ic8LAMEUVgANAAAAAAAAAA==/", "_etag": "\"00004100-0000-0000-0000-56704f4e0000\"", "_attachments": "attachments/" } Created document nust from typed object
广告