gpt4 book ai didi

azure - 如何在Azure表服务上存储和查询空间数据

转载 作者:行者123 更新时间:2023-12-02 07:14:22 25 4
gpt4 key购买 nike

我正在尝试创建一个基于位置的应用程序,人们可以查询在其位置 5 英里范围内创建的记录。

创建记录后,我会将纬度和经度存储在 Azure 表服务中。

获得此数据后,如何获取距我当前位置 5 英里范围内的所有记录?

谢谢。

最佳答案

为了优化 Azure 表存储查询,它们需要在分区键和行键上运行。解决方案可能是将纬度存储在分区键中,将经度存储在行键中。分区键和行键组合必须是唯一的(想想 SQL 中的主键)。我将使用此策略,如果您有相同纬度和经度的多个条目,那么您可以使用 ATS 的动态属性或 InsertOrMerge 将它们存储在同一行中。这样你就可以像这样查询:

IQueryable<Entries> query = 
(from q in _table.CreateQuery<Entries>()
where q.PartitionKey.CompareTo(minLatitude) > 0
&& q.PartitionKey.CompareTo(maxLatitude) < 0
&& q.RowKey.CompareTo(minLongitude) > 0
&& q.RowKey.CompareTo(maxLongitude) < 0
select q);

您还可以巧妙地使用 PartitionKey 并使用它来存储一定范围的纬度或区域,以限制所需的分区数量。 SQL Azure 还支持geospatial queries

关于azure - 如何在Azure表服务上存储和查询空间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25176190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com