我正在使用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,这是否足够?矫枉过正?这对我的情况有帮助吗?
我在单独的字段中存储了纬度和经度.我从谷歌获得Lat&Lng坐标,并使用它们使用一些公式找到附近的地方.现在有时纬度和经度值最多可达到15个小数位 - > 15.123456789000001.什么是存储这些值的最佳数据类型?现在我使用Double来存储纬度和经度坐标.
提前致谢
我想在mysql数据库表中存储位置的纬度和经度值.考虑到未来,我希望能够在特定位置的特定半径范围内找到这些位置.话虽如此,我应该将纬度和经度值存储在哪些数据类型?请你能为我提供一个创建表脚本,如下所示:
place_id | lat | long
Run Code Online (Sandbox Code Playgroud)
上表中是否有一个我缺少的专栏,它将为我提供我目前可能看不到的其他信息?
谢谢你的帮助.
我在服务器端存储经度和纬度(JAVA平台).
要存储这些值,我在服务器端使用float和double数据类型.我开始知道float和double不是推荐的原始数据类型(不推荐以专业方式使用货币),因为float和double有舍入精度问题.
在我的例子中,我只是比较服务器端存储的坐标(纬度和经度).
问题1:
将坐标与数据类型(浮点数或双精度数)进行比较将来会出现什么问题?
问题2:
使用大小数好吗?或者使用浮点数或双倍更安全?
java precision google-maps type-conversion google-maps-api-3
我正在设计一个mysql表,用于存储用户列表和Google Maps坐标(经度和纬度).
我需要两个字段,还是可以用1完成?
我不知道我用的是什么?我使用float或decimal或GEOMETRY还是有新的数据类型?选择最佳数据类型的优缺点是什么?
我正在构建一个目录,让您可以根据您当前的位置查看周围的业务。目前,这些业务在数据库中存储为address1、address2、city、province、postal_code。
如果我想计算距离,我是否也应该存储纬度/经度?解决这个问题的最佳方法是什么?
我正在使用 PHP、HTML5 地理定位和 Google 地图。
我有一个存储经度和纬度坐标的表格(谷歌地图)我将列定义为浮点数但是当我尝试插入一个值-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数据库中定义为双精度数:
`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, …我想保存一个这么久的浮点数
13.00386644742523
它基本上是Lat和Lng值.当我将它保存在数据库中时,它被存储为
13.0039
在包含Geo Spatial数据的MYSQL数据库中构造表的建议方法是什么.作为POC,我正在努力将数据插入数据库表中,如下图所示.
以下是Phpmyadmin表创建表创建的快照

寻找建立地理空间数据表的建议,如截图所示.
编辑:我正在使用运行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数据库中.
假设我有一个位置表(纬度,经度),我希望将指定范围内的所有位置都放到我当前位置,我的问题更好:将计算包含在查询的where子句中,类似于,select * from locations where /* formula of cosines and sines of the latitude and longitude */ < distance.
我的第二选择是获取所有位置并在程序中进行本地计算.如果重要的话,我正在使用java和mysql
mysql ×8
geolocation ×4
google-maps ×3
java ×2
php ×2
database ×1
double ×1
geospatial ×1
html ×1
performance ×1
precision ×1
pylons ×1
spatial ×1
sql ×1
sqlalchemy ×1
types ×1
yii ×1
yii2 ×1