gpt4 book ai didi

linq-to-sql - 使用 Linq to Sql 查找半径距离内的邮政编码

转载 作者:行者123 更新时间:2023-12-02 21:53:40 25 4
gpt4 key购买 nike

我有一个邮政编码及其纬度/经度的数据库表。我试图找到一些代码,显示一个查询,该查询采用邮政编码和 x 英里,然后返回包含该半径内所有邮政编码的结果集(精度不是很重要 - 只要它接近)。

这可以通过 Linq to SQL 查询来完成,这样我就不必使用存储过程吗?

最佳答案

我想通了,一旦我找到了方程,实际上并没有那么难。

Public Function SearchStudents(ByVal SearchZip As String, ByVal Miles As Double) As IEnumerable(Of Student)
Dim dc As New IMDataContext()

Dim lat As Double
Dim lng As Double
Dim maxlat As Double
Dim minlat As Double
Dim maxlng As Double
Dim minlng As Double

Dim zip As ZipCode = (From z In dc.ZipCodes Where z.ZipCode = SearchZip).SingleOrDefault()

lat = zip.Latitude
lng = zip.Longitude

maxlat = lat + Miles / 69.17
minlat = lat - (maxlat - lat)
maxlng = lng + Miles / (Math.Cos(minlat * Math.PI / 180) * 69.17)
minlng = lng - (maxlng - lng)

Dim ziplist = From z In dc.ZipCodes Where z.Latitude >= minlat _
And z.Latitude <= maxlat _
And z.Longitude >= minlng _
And z.Longitude <= maxlng Select z.ZipCode

Return From i In dc.Students Where ziplist.Contains(i.Zip)
End Function

关于linq-to-sql - 使用 Linq to Sql 查找半径距离内的邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1647521/

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