mysql 周边x公里_mySQL选择y范围内x公里/英里内的zipcodes
注意:虽然我使用荷兰zipcodes的zipcode数据库,但是这个问题是独立于国家的。
例如zipcode:
$baseZipCode = 1044;
坐标如下:
x coordinate = 4,808855
y coordinate = 52,406332
$range
从
$baseZipCode
.
SELECT
zipcode
FROM
zipcodes
WHERE
????? // Need help here
问题是地球并不完全是圆的。我发现很多关于
from a to b
但这不是我需要的。
更新
要查找距离另一个zipcode或点一定英里/公里半径内的所有zipcode和相应距离吗?这个问题需要经纬度坐标来解决。对地址进行地理编码可以从地址中获得纬度/经度坐标。
首先,您需要一个包含所有zipcodes及其相应经纬度坐标的数据库:
CREATE TABLE `zipcodes` (
`zipcode` varchar(5) NOT NULL DEFAULT '',
`city` varchar(100) NOT NULL DEFAULT '',
`state` char(2) NOT NULL DEFAULT '',
`latitude` varchar(20) NOT NULL DEFAULT '',
`longitude` varchar(20) NOT NULL DEFAULT '',
KEY `zipcode` (`zipcode`),
KEY `state` (`state`)
)
// ITITIAL POINT
$coords = array('latitude' => "32.8", 'longitude' => "-117.17");
//RADIUS
$radius = 30;
// SQL FOR KILOMETERS
$sql = "SELECT zipcode, ( 6371 * acos( cos( radians( {$coords['latitude']} ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( {$coords['longitude']} ) ) + sin( radians( {$coords['latitude']} ) ) * sin( radians( latitude ) ) ) ) AS distance FROM zipcodes HAVING distance <= {$radius} ORDER BY distance";
// SQL FOR MILES
$sql = "SELECT zipcode, ( 3959 * acos( cos( radians( {$coords['latitude']} ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( {$coords['longitude']} ) ) + sin( radians( {$coords['latitude']} ) ) * sin( radians( latitude ) ) ) ) AS distance FROM zipcodes HAVING distance <= {$radius} ORDER BY distance";
// OUTPUT THE ZIPCODES AND DISTANCES
$query = mysql_query($sql);
while($row = mysql_fetch_assoc($query)){
echo "{$row['zipcode']} ({$row['distance']})
\n";
}
(雅虎和谷歌都提供免费的地理编码服务。)
mysql 周边x公里_mySQL选择y范围内x公里/英里内的zipcodes相关推荐
- mysql 上一条_mysql选择上一条、下一条数据记录
1.表数据结构 选择mysql记录上一条,下一条sql语句 SELECT * FROM user ORDER BY rank ASC +----+------+---------+ | ID | ra ...
- 适合mysql的网络存储_mysql 选择合适的存储引擎
1 MyISAM:默认的MySQL 插件式存储引擎.如果应用是以读操作和插入操作为主, 只有很少的更新和删除操作,并且对事务的完整性.并发性要求不是很高,那么选择这个存 储引擎是非常适合的.MyISA ...
- mysql查询值替换_MySQL选择查询替换值
每: COUNT(CASE WHEN b.name="Clase X" THEN b.name END) 在您的代码中,可以编写为: SUM(b.name='Clase X') b ...
- mysql中如何选中数据库_MySQL 选择数据库
一般 MySQL 数据库服务器上都会有多个可以操作的数据库,我们可能要在数据库之间来回切换 MySQL 允许我们保持连接的时间内切换数据库 mysql client 命令提示窗口中切换 MySQL 数 ...
- mysql or 创建索引_Mysql索引优化
1.单表索引优化 单表索引优化分析 创建表 建表 SQL CREATE TABLE IF NOT EXISTS article( id INT(10) UNSIGNED NOT NULL PRIMAR ...
- mysql的英文字母_MySQL中查询的有关英文字母大小写问题的分析
mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的. 1. 什么是字符集和校验规则? 字符集是 ...
- mysql的内外连接_MYSQL的内外连接
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...
- mysql 拼音首字母_Mysql:拼音首字母查询(超高性能)
注:不用新建表,查询性能高,可以兼容中英文 简单分析 应用场景:通常对地址或者数量较多的分类会选择首字母查询的方法 性能考虑:PHP中进行首字母查询,网上可以找到很多脚本实现,但需要将所有数据进行读出 ...
- mysql 不同的记录_Mysql通过一个限制条件,查出多条不同的记录
表1和表2是不同数据库中的同名table,但是发现表1中的查询和表2中的查询有区别,(事实是表1的查询是对的.) 表1的查询结果 mysql> select * from slot_value ...
最新文章
- 在阿里云ECS服务器上面开启tomcat服务并且正常后,无法访问怎么办?原来是没有开通外网访问的端口
- Adapter.getView convertView(重用View) ViewHolder(避免findViewById)
- 笨方法“学习python笔记之条件控制
- 计算机安全日志,如何回复被删除的电脑安全日志
- mysql search yum_mysql的yum安装与配置
- 在双屏软件中,PPT自定义动画注意事项
- 怎样登陆微信公众号?怎样登陆微信公众号后台?
- 联合查询(union)——MySQL
- 利用计算机技术设计直流稳压电源,数字化控制在直流稳压电源中 - 稳压电源 - 电子发烧友网...
- 自媒体平台搜狗号登陆 搜狗挑战百度、头条有胜算吗?
- Python PrettyTable 模块(美化库)
- iOS开发--AVFoundation进行视频合成, 导出结果旋转90度问题
- PhoneGap移动开发框架2
- 股市和庞氏骗局的类同之处
- DB2数据库的简单使用
- Thread.currentThread().interrupt()和Thread.interrupted()和Thread.currentThread().isInterrupted()
- JAVA实现MD5带盐加密_MD5加盐加密
- 小型初创公司Trisymbiotic IP(R)宣布,其美国专利10,020,436的设施效率超越美国和中国最快的超级计算机
- 麦子:我奋斗了18年才和你坐在一起喝咖啡
- CAD图纸如何转换成白色背景的SVG图片