`
jaydelano
  • 浏览: 3169 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

使用mysql空间索引,搜索附近的坐标地址并按距离排序

 
阅读更多
SELECT
	address,X(address_loc),Y(address_loc),
(2 * 6378.137 * ASIN(SQRT(POW(SIN(PI() * (:lat - X(p.shop_point)) / 360),2) + COS(PI() * :lat / 180) * COS(X(p.shop_point) * PI() / 180) * POW(SIN(PI() * (:lng - Y(p.shop_point)) / 360),2)))) as distance
FROM
	address
WHERE
	MBRContains (
		LineString (
			Point (
				30.620076 + 10 / (
					111.1 / COS(RADIANS(104.067221))
				),
				104.067221 + 10 / 111.1
			),
			Point (
				30.620076 - 10 / (
					111.1 / COS(RADIANS(104.067221))
				),
				104.067221 - 10 / 111.1
			)
		),
		address_loc
	)
ORDER BY distance;
分享到:
评论

相关推荐

    MYSQL 关于两个经纬度之间的距离由近及远排序

    2. **空间索引**:如果MySQL版本支持,可以使用空间索引(如SPATIAL INDEX),专门为地理坐标数据设计,可以更高效地处理地理查询。 3. **平面坐标转换**:如果精度要求允许,可以将经纬度转换为平面坐标(如Web ...

    查找城市信息+给出城市名返回其坐标+返回所有距离小于d的城市名

    3. **KDTree(K-D树)**或**球树(Quadtree)**:为了快速定位城市并找出距离特定城市小于d的城市,我们可以利用空间索引数据结构,如KDTree或球树。这些数据结构特别适合于在高维空间中执行范围查询,例如在二维的...

    JAVA实现空间索引编码——GeoHash的示例

    GeoHash是一种高效的空间索引编码技术,用于将地理位置(经度和纬度)转换为可排序、可比较的字符串。这种编码方式能够帮助我们在大量位置信息中快速查找最近的位置。在JAVA中实现GeoHash,我们可以按照以下步骤进行...

    PHP查询附近的人及其距离的实现方法

    这个实现方法适用于简单的地理围栏查询,但实际应用中可能需要更复杂的查询策略,例如使用空间索引或GIS扩展(如PostGIS)来提高查询效率。同时,如果需要考虑地球曲率对计算的影响,可以考虑使用更精确的地理空间...

    使用MySQL的geometry类型处理经纬度距离问题的方法

    如果我们想找到距离某个点(例如上面的参照点)1000米内的地点,并按距离排序,可以使用以下查询: ```sql SELECT id, address, ST_Distance_Sphere(POINT(121.590347, 31.388094), location) AS distant FROM ...

    最新中国行政区划,城市代码,sql文件(含省市区行政编码,邮编,区号,拼音,经纬度坐标)

    7. **首字母和拼音**:行政区域名的首字母和全拼在搜索、排序和建立索引时很有用,尤其是在中文环境下,拼音可以帮助实现快速检索和英文界面下的显示。 总结来说,这个资源集合了中国最新的行政区划信息,以SQL和...

    java实现附近的人功能.zip

    一种常见的方法是使用空间索引,如R树或 Quadtree,它们可以快速定位到距离某个点最近的其他点。 5. **实时更新**:考虑到用户位置可能会实时变化,系统需要支持实时位置更新和刷新“附近的人”列表。这可以通过...

    POI搜索POI搜索

    常见的有基于关键词的全文搜索、二分查找、空间索引(如R树、Quadtree)等。这些算法可以帮助快速过滤出符合用户查询条件的结果。 4. 排序和过滤:搜索结果通常需要按照某种标准排序,比如距离、评分或人气。同时,...

    SalEats:开发了一个餐厅搜索网络应用程序,该应用程序可以在地图上所选位置附近找到并排序餐厅

    同时,可能使用Geocoding服务将地址转换为坐标,反之亦然,增强了搜索的精确性。 **3. 数据库设计与查询优化** 为了存储和检索餐厅信息,SalEats可能采用了关系型数据库如MySQL或非关系型数据库如MongoDB。数据库...

    外卖最短路径计算

    5. **空间索引**:为了提高查询效率,项目可能使用了空间索引技术,如R树或四叉树,将地理位置数据组织起来,便于快速查找最近的餐馆或顾客。 6. **并发与多线程**:如果系统需要同时处理多个外卖订单,那么并发和...

    DistanceSearch

    2. 地理索引:为了提高查询效率,可能会创建空间索引,例如MySQL中的SPATIAL索引或InnoDB引擎的Full-text索引,这可以加速基于距离的范围查询。 3. 范围查询:使用SQL语句进行范围查询,例如`SELECT * FROM ...

    京东2016实习生招聘笔试真题-技术岗位选择题二.docx

    - **曼哈顿距离**是指在欧几里得空间中两点沿坐标轴方向的距离之和。 **题目解析:** - 当使用曼哈顿距离作为邻近度函数时,合适的质心应当是簇中各点的中位数,因为中位数可以最小化所有点到质心的曼哈顿距离之和...

Global site tag (gtag.js) - Google Analytics