Azure Cosmos DB - Gremlin纬度经度格式转换问题

时间:2018-03-22 00:44:26

标签: geocoding azure-cosmosdb gremlin

我正在尝试将机场 GeoCoordinate 数据转换为< IATA代码纬度经度]到< Azure Cosmos DB Graph API 项目中的strong> Gremlin Vertex Vertex 转换主要通过 Asp.Net Core 2.0控制台应用使用 CSVReader 来流式传输和转换来自 airport.dat的数据(csv)文件。 这个过程包括转换超过6,000行...

例如,在原始的 airport.dat 源文件中,蒙特利尔皮埃尔埃利奥特特鲁多国际机场将使用与下面类似的模型列出:

1,"Montreal / Pierre Elliott Trudeau International Airport","Montreal","Canada","YUL","CYUL",45.4706001282,-73.7407989502,118,-5,"A","America/Toronto","airport","OurAirports"

然后,如果我在我的鳕鱼中定义 Gremlin Vertex 创建查询,如下所示:

var gremlinQuery = $"g.addV('airport').property('id', \"{code}\").property('latitude', {lat}).property('longitude', {lng})";

然后启动控制台应用程序时,将以完全相似的方式成功生成 Vertex 转换过程:

1 g.addV('airport').property('id', "YUL").property('latitude', 45.4706001282).property('longitude', -73.7407989502)

请注意,对于蒙特利尔机场(位于NA而非远东地区......),经度的格式正确减去 - 前缀,但在Azure门户上进行查询时似乎正在丢失。

{
"id": "YUL",
"label": "airport",
"type": "vertex",
"properties": {
  "latitude": [
    {
      "id": "13a30a4f-42cc-4413-b201-11efe7fa4dbb",
      "value": 45.4706001282
    }
  ],
  "longitude": [
    {
      "id": "74554911-07e5-4766-935a-571eedc21ca3",
      "value": 73.7407989502 <---- //Should be displayed as -73.7407989502
    }
  ]
}

这有点尴尬。如果有人遇到类似的问题并且能够修复它,那么我完全愿意接受建议。

由于

2 个答案:

答案 0 :(得分:1)

根据你的描述,我刚刚在我身边执行了Gremlin查询,我可以按如下方式检索插入的Vertex:

enter image description here

然后,我只是在Azure Portal上查询并检索记录如下:

enter image description here

根据我的理解,您需要检查代码的执行情况并验证查询的响应以缩小此问题的范围。

答案 1 :(得分:0)

感谢您的建议,但问题现在已经解决了。 在 .Net 4.5.2 [&amp;]的情况下,以前建议作为工作答案场景[和投票1 ...]的内容早已得到解决。 。 Net 4.6.1 ]版本与 Microsoft.Azure.Graph 0.2.4 -preview 结合使用。我的问题的问题并没有真正关注,可能会有点微妙......也许我应该更加强调这个问题主要与 Microsoft.Azure.Graph 0.3有关的事实。 .1 -preview 用于 Core 2.0 + dotnet CLI 方案。

根据以下图表 - 解析图中的数字常量的多个问题gremlin查询#438 评论 Github

https://github.com/Azure/azure-documentdb-dotnet/issues/438

确实存在一些公平的理由认为该问题是 Microsoft.Azure.Graph 0.3.1 -preview 的错误。我选择使用 Gremlin.Net 方法,并设法获得我预期的正确结果。

相关问题