相关疑难解决方法(0)

Sqlalchemy:纬度和经度浮力精度?

我正在使用Sqlalchemy来定义我的表等等,这里是我提出的一些代码:

locations = Table('locations', Base.metadata,
Column("lat", Float(Precision=64), primary_key=True),
Column("lng", Float(Precision=64), primary_key=True),
)
Run Code Online (Sandbox Code Playgroud)

我在某处读到纬度和经度要求比浮点更精确,通常是双倍精度.所以我手动将精度设置为64,这是否足够?矫枉过正?这对我的情况有帮助吗?

database pylons database-design sqlalchemy geolocation

11
推荐指数
2
解决办法
7197
查看次数

适合的mysql数据类型,用于在单独的字段中存储纬度和经度

我在单独的字段中存储了纬度和经度.我从谷歌获得Lat&Lng坐标,并使用它们使用一些公式找到附近的地方.现在有时纬度和经度值最多可达到15个小数位 - > 15.123456789000001.什么是存储这些值的最佳数据类型?现在我使用Double来存储纬度和经度坐标.

提前致谢

mysql types

11
推荐指数
1
解决办法
1万
查看次数

MySQL纬度和经度表设置

我想在mysql数据库表中存储位置的纬度和经度值.考虑到未来,我希望能够在特定位置的特定半径范围内找到这些位置.话虽如此,我应该将纬度和经度值存储在哪些数据类型?请你能为我提供一个创建表脚本,如下所示:

place_id  |  lat  |  long
Run Code Online (Sandbox Code Playgroud)

上表中是否有一个我缺少的专栏,它将为我提供我目前可能看不到的其他信息?

谢谢你的帮助.

mysql spatial latitude-longitude

9
推荐指数
1
解决办法
8091
查看次数

float和double数据类型可以存储纬度和经度吗?

我在服务器端存储经度和纬度(JAVA平台).

要存储这些值,我在服务器端使用float和double数据类型.我开始知道float和double不是推荐的原始数据类型(不推荐以专业方式使用货币),因为float和double有舍入精度问题.

在我的例子中,我只是比较服务器端存储的坐标(纬度和经度).

问题1:

将坐标与数据类型(浮点数或双精度数)进行比较将来会出现什么问题?

问题2:

使用大小数好吗?或者使用浮点数或双倍更安全?

java precision google-maps type-conversion google-maps-api-3

9
推荐指数
2
解决办法
2万
查看次数

要存储在mysql数据库中的经度和纬度的数据类型?

我正在设计一个mysql表,用于存储用户列表和Google Maps坐标(经度和纬度).

我需要两个字段,还是可以用1完成?

我不知道我用的是什么?我使用float或decimal或GEOMETRY还是有新的数据类型?选择最佳数据类型的优缺点是什么?

php mysql

8
推荐指数
1
解决办法
5080
查看次数

如果我正在执行“查找靠近我”选项,我是否应该将经度/纬度存储在数据库中?

我正在构建一个目录,让您可以根据您当前的位置查看周围的业务。目前,这些业务在数据库中存储为address1、address2、city、province、postal_code。

如果我想计算距离,我是否也应该存储纬度/经度?解决这个问题的最佳方法是什么?

我正在使用 PHP、HTML5 地理定位和 Google 地图。

html php google-maps geolocation

5
推荐指数
1
解决办法
658
查看次数

MySql使用Float数据类型存储地理坐标

我有一个存储经度和纬度坐标的表格(谷歌地图)我将列定义为浮点数但是当我尝试插入一个值-61.45859899999999和10.28289时,它们将四舍五入为-61.46和10.30.如何修改列以保持数据不变.

我正在使用mysql toad.Under是表的代码:

CREATE TABLE `tblGeoCodes` (
  `recNo` int(11) NOT NULL AUTO_INCREMENT,
  `longLocation` float(30,2) DEFAULT NULL,
  `latLocation` float(30,2) DEFAULT NULL 
Run Code Online (Sandbox Code Playgroud)

mysql google-maps geolocation

5
推荐指数
2
解决办法
9744
查看次数

将双类型数据(地理定位)保存到数据库时,奇怪的(?)值会发生变化

我有两个用于存储地理位置数据的字段,在我的MySQL数据库中定义为双精度数:

`address_geo_latitude` float(10,6) NOT NULL,
`address_geo_longitude` float(10,6) NOT NULL
Run Code Online (Sandbox Code Playgroud)

我正在使用Yii2的double验证器而不是用户传递的值:

public function rules()
{
    return [
        [['address_geo_latitude', 'address_geo_longitude'], 'double', 'min'=>0, 'max'=>360]
    ];
}
Run Code Online (Sandbox Code Playgroud)

(虽然我的测试似乎证明,这个问题与Yii2验证器无关)

在测试期间,我观察到值的奇怪(?)变化,即:

  • 359.90成为359.899994(0,000006差异),
  • 359.80成为359.799988(0,000012差异),
  • 311.11成为311.109985(0,000015差异),
  • 255.55成为255.550003(-0,000003差异),
  • 205.205成为205.205002(-0,000002差异),
  • 105.105变得105.105003(-0,000003差异).

但:

  • 359.899994遗体359.899994,
  • 311.109985遗体311.109985,
  • 311遗体311,
  • 255遗体255, …

mysql double geolocation yii yii2

5
推荐指数
1
解决办法
1027
查看次数

MySQL存储Floats

我想保存一个这么久的浮点数

13.00386644742523

它基本上是Lat和Lng值.当我将它保存在数据库中时,它被存储为

13.0039

mysql floating-point latitude-longitude

3
推荐指数
2
解决办法
9360
查看次数

地理空间数据的表结构

在包含Geo Spatial数据的MYSQL数据库中构造表的建议方法是什么.作为POC,我正在努力将数据插入数据库表中,如下图所示.

数据库

以下是Phpmyadmin表创建表创建的快照

phpmyadmintable

寻找建立地理空间数据表的建议,如截图所示.

编辑:我正在使用运行MYSQL版本5.6.16的XAMPP V1.8.3 Windows8.使用下面的sql创建表格geomduplicate和列以及插入数据

CREATE TABLE geomduplicate1(
zip INTEGER(3) NOT NULL PRIMARY KEY, 
latitude NUMERIC(9,6), 
longitude NUMERIC(10,6),
city VARCHAR(10),
state VARCHAR(2),
county VARCHAR(9)
);
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(501,40.922326,-72.637078,'Holtsville','NY','Suffolk');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(544,40.922326,-72.637078,'Holtsville','NY','Suffolk');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(601,18.165273,-66.722583,'Adjuntas','PR','Adjuntas');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(602,18.393103,-67.180953,'Aguada','PR','Aguada');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(603,18.455913,-67.14578,'Aguadilla','PR','Aguadilla');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(604,18.49352,-67.135883,'Aguadilla','PR','Aguadilla');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(605,18.465162,-67.141486,'Aguadilla','PR','Aguadilla');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(606,18.172947,-66.944111,'Maricao','PR','Maricao');
REPLACE INTO geomduplicate1(zip,latitude,longitude,city,state,county) VALUES
(610,18.288685,-67.139696,'Anasco','PR','Anasco');
Run Code Online (Sandbox Code Playgroud)

并且数据已成功插入mysql数据库中.

mysql sql geospatial

3
推荐指数
1
解决办法
9508
查看次数

哪个更好?使用编程语言或使用数据库服务器进行计算

假设我有一个位置表(纬度,经度),我希望将指定范围内的所有位置都放到我当前位置,我的问题更好:将计算包含在查询的where子句中,类似于,select * from locations where /* formula of cosines and sines of the latitude and longitude */ < distance.
我的第二选择是获取所有位置并在程序中进行本地计算.如果重要的话,我正在使用java和mysql

java mysql performance

3
推荐指数
1
解决办法
938
查看次数