是否有将纬度和经度更改为单个数字的公式?

Ema*_*een 4 vb.net latitude-longitude

你能否告诉我是否有一个公式可以将纬度和经度改为一个数字?

我计划将此用于软件中的数据库表,该软件提供交付路由.表格行将包含该号码以及邮政地址.数据库表将按升序排序,因此软件可以确定卡车需要前往哪个地址,第二个等等.

请您回复显示VB或VB.Net语法,以便了解它是如何工作的?

例如,我将使用以下数字作为纬度和经度:Lat = 40.71412890 Long = -73.96140740

附加信息:

我正在使用Basic4Android开发Android应用程序.Basic4Android使用VB或VB.Net语法和SQLite作为数据库.

此应用程序的一部分将具有路线规划.我想将此数字用作SQLite表中的第一列,其他列将用于该地址.如果我在应用程序中进行查询,按数字升序对行进行排序,我将能够确定哪个邮政地址彼此最接近,这样我就可以花更少的时间去挨家挨户.

例如,如果数字是:194580,199300,178221

我可以去邮政地址178221,然后到194580,最后到199300,在分拣后,我不需要花很长时间去城里做我的分娩.

作为一种替代方案,如果有一种简单的方法可以调用Web服务,如果我向网站发送邮件地址,则可能会返回具有单个号码的json响应,我会很高兴.Basic4Android确实有可以向网站发送请求的http服务.

Ale*_*ien 6

纬度和经度都可以表示为4字节整数,使得坐标具有3cm的精度,这对于大多数应用来说是足够的.

从纬度和经度创建一个长8字节值的步骤:

1)将lat和lon转换为int by:int iLat = lat*1E7;
2)使用8字节长的值来存储4字节int.
将上4字节设置为纬度,将4字节设置为经度.

现在你有一个8字节的长度代表世界上一个高达3厘米精度的点.

还有其他更好的解决方案,例如在近处保留类似数字的解决方案,但这些解决方案更复杂.

  • 当你说“还有其他......保持相似的数字”时,你有链接吗?@Quarj 的 [下面的解决方案](/sf/answers/3316670381/)、[Geohexa](https://github.com/Qarj/geohexa) 还有其他的吗? (2认同)

Ema*_*een -4

我发现通过添加特定地址的纬度和经度(不包括门牌号)并按添加的数字对数据库表中的结果进行排序,然后按门牌号升序进行第二次排序,可以获得良好的结果。

我使用这个 url 来获取需要相加的数字:

http://where.yahooapis.com/geocode?q=stedman+st,+lowell,+ma
Run Code Online (Sandbox Code Playgroud)