DocumentDB-지리 공간 데이터
Microsoft 추가 geospatial support, 문서에 위치 데이터를 저장하고 점과 다각형 사이의 거리와 교차점에 대한 공간 계산을 수행 할 수 있습니다.
공간 데이터는 공간에서 물체의 위치와 모양을 설명합니다.
일반적으로 사람의 위치, 관심 장소 또는 도시 또는 호수의 경계를 나타내는 데 사용할 수 있습니다.
일반적인 사용 사례에는 종종 근접 쿼리가 포함됩니다. 예 : "현재 위치 근처의 모든 대학 찾기".
ㅏ Point정확한 위치 (예 : 특정 대학의 주소)를 나타내는 공간의 단일 위치를 나타냅니다. 점은 좌표 쌍 (경도 및 위도)을 사용하여 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