使用MySQL存储经纬度类型的方法(mysql经纬度类型)
2023-06-13 09:17:28 时间
在使用MySQL进行开发时,有时需要存储经纬度信息,而MySQL并没有任何现成的经纬度类型可用,在列存储类型中有Varchar和Text,但是并不能满足经纬度的存储需求。下面介绍如何使用MySQL存储经纬度类型的方法:
一、创建数据表
使用MySQL中的查询语句来创建一个经纬度字段的数据表,并定义一个精度为8位的十六进制字符串字段,名称为latlng,例如:
CREATE TABLE ` loc ` (
` id ` int ( 11) NOT NULL AUTO_INCREMENT,` latlng ` char ( 16 ) NOT NULL,
PRIMARY KEY (` id `)) ENGINE = INNODB CHARACTER SET = utf8;
二、使用坐标转换函数
将经纬度信息转换成十六进制的格式,例如:
// 将经纬度信息转换成十六进制
$lat = "40.1234567";$lng = "-90.9876543";
$lat_hex_b = dechex(round($lat * 1000000));
$lat_hex_e = dechex((($lat* 1000000) - round($lat* 1000000))* pow(16, 8));
$lng_hex_b = dechex(round($lng * 1000000));$lng_hex_e = dechex((($lng* 1000000) - round($lng* 1000000))* pow(16, 8));
$latlng_hex = $lat_hex_b.$lat_hex_e." ".$lng_hex_b.$lng_hex_e
然后将转换后的结果插入到数据库当中:
$sql = "insert into `loc` (` latlng `) values ("$latlng_hex ")";
$res = mysql_query($sql);
三、使用查询函数
通过十六进制的字符串解析出经纬度的值,例如:
SELECT * FROM `loc`
$latlng_hex = $row ["latlng"];
$lat_hex_b = substr($latlng_hex, 0, 8);
$lat_hex_e = substr($latlng_hex, 8, 8);$lng_hex_b = substr($latlng_hex, 16, 8);
$lng_hex_e = substr($latlng_hex, 24, 8);
$lat = hexdec($lat_hex_b) + hexdec($lat_hex_e)/ pow(16, 8);
$lng = hexdec($lng_hex_b) + hexdec($lng_hex_e)/ pow(16, 8);
四、总结
以上就是使用MySQL存储经纬度类型的方法,可以让数据库更加灵活,方便存储浮点数也可以提升数据存储的空间效率,可以用于系统地理定位等场景。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 使用MySQL存储经纬度类型的方法(mysql经纬度类型)
相关文章
- Linux中快速进入MySQL数据库的方法(linux怎么进入mysql)
- MySQL查询:连接两个表(mysql查询两个表)
- MySQL 导入极慢:为何如此?(mysql导入很慢)
- 的优点MySQL存储字符串的优势分享(mysql存字符串)
- Mysql格式化时间的快速方法(mysql把时间格式化)
- MySQL存储与使用二进制数据(mysql二进制数据)
- MySQL高效存储二进制数据(mysql二进制数据)
- MySQL连接超时导致连接断开的解决方法(mysql超时断开)
- MySQL 数据库更新值的简便方法(mysql更新值)
- MySQL实现随机更新功能(mysql随机更新)
- 流程详解:如何在MySQL中创建一张新的数据表(mysql如何创建一个表)
- MySQL中使用IN子句出现重复值问题的解决方法(mysql中in有重复值)
- MySQL中G的意思,你知道吗(mysql中 g的意思)
- 比较boltdb和MySQL的优缺点(boltdb mysql)
- 用CMD快速启动MySQL数据库(cmd启动运行mysql)
- MySQL配置失败困扰试试这些解决方法(mysql一直配置失败)
- 回顾MySQL上个月初的重要发展(mysql 上个月初)
- MySQL外键添加失败的处理方法(mysql不能加入外键)
- MySQL的不等于条件了解这一简单却常见的筛选方法(mysql 不等于条件)
- MySQL轻松启动无需安装(mysql 不用安装)
- 优化Mysql数据库的8个方法