你能告诉我是否有一个公式可以将纬度和经度转换为单个数字?
我计划将其用于提供交付路由的软件中的数据库表。表行将包含该号码以及邮政地址。数据库表将按数字升序排序,以便软件可以找出卡车需要前往第一个、第二个等的地址。
请您回复显示 VB 或 VB.Net 语法,以便我可以理解它是如何工作的?
例如,我将使用以下数字作为纬度和经度:
纬度 = 40.71412890
长 = -73.96140740
附加信息:
我正在使用 Basic4Android 开发 Android 应用程序。 Basic4Android 使用 VB 或 VB.Net 语法,并以 SQLite 作为数据库。
这个应用程序的一部分将有路线规划。我想使用这个数字作为 SQLite 表中的第一列,其他列将用于地址。如果我在应用程序中执行按数字升序对行进行排序的查询,我将能够找出彼此最接近的邮政地址,这样我挨家挨户所需的时间就会更少。
例如,如果数字是:
194580、199300、178221
我可以转到邮政地址 178221,然后转到 194580,最后转到 199300,这样在分拣后我就不需要绕城走很远的路来送货了。
作为替代方案,如果有一种简单的方法来调用 Web 服务,如果我向网站发送邮政地址,该服务可能会返回包含单个数字的 json 响应,我会很高兴。 Basic4Android 确实有可以向网站发送请求的 http 服务。
纬度和经度都可以表示为 4 字节整数,这样坐标的精度为 3 厘米,这足以满足大多数应用程序的需要。
根据纬度和经度创建一个 long 类型的 8 字节值的步骤:
1) 将 lat 和 lon 转换为 int: int iLat = lat * 1E7;
2)使用8字节长的值来存储这两个4字节int。
将高 4 字节设置为纬度,低 4 字节设置为经度。
现在你有了一个 8 字节长的数据,代表世界上的一个点,精度高达 3 厘米。
还有其他更好的解决方案,例如为附近的位置保持类似的数字,但这些解决方案更复杂。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)