当前位置: 首页 > news >正文

java之uniapp实现门店地图

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、后台实现
    • 1. 获取门店的经纬度
    • 2.api查询对应的sql
  • 二 、小程序实现


前言

实现查询门店地址的功能,可以按照距离排序。使用技术:java+mysql+uniapp百度地图+高德获取经纬度

---

提示:以下是本篇文章正文内容,下面案例可供参考

一、后台实现

1. 获取门店的经纬度

可以通过高德或者百度的api接口传入地址获取经纬度。
这里我使用的是高德,高德api文档地址
在这里插入图片描述
将拉取过来的经纬度存入到数据库中

CREATE TABLE `ums_member_company_coordinate` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `company_name` varchar(255) DEFAULT NULL,
  `address_detail` varchar(255) DEFAULT NULL COMMENT '详细地址\n',
  `address_province` varchar(20) DEFAULT NULL COMMENT '地址-省',
  `address_city` varchar(20) DEFAULT NULL COMMENT '地址-市',
  `address_county` varchar(20) DEFAULT NULL COMMENT '地址-县(区、市)',
	`location` point NOT NULL COMMENT '经纬度',
  PRIMARY KEY (`id`) USING BTREE,
  SPATIAL KEY `spatial_index_location` (`location`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COMMENT='客户门店高德坐标';

示例数据:

INSERT INTO `` (`company_name`, `address_detail`, `address_province`, `address_city`, `address_county`, `location`) VALUES ('南昌市龙盛大药房有限公司', '江西省南昌市西湖区建设西路1285号龙盛建设佳园4号楼商用楼104室', '江西省', '南昌市', '西湖区', ST_GeomFromText('POINT(115.877543 28.649779)'));
INSERT INTO `` (`company_name`, `address_detail`, `address_province`, `address_city`, `address_county`, `location`) VALUES ('江西益康大药房有限公司', '江西省南昌市西湖区云锦路436号中海朝阳郡铂宫2号楼1层商业111室(011室)', '江西省', '南昌市', '西湖区', ST_GeomFromText('POINT(115.875458 28.624109)'));

注意location 字段为point 类型,所以我们在新增或者修改数据的时候需要做处理

UPDATE set location = POINT(CAST(#{longitude} as DECIMAL(12,6)),CAST(#{latitude} as DECIMAL(12,6))) WHERE company_name = '南昌市龙盛大药房有限公司'

2.api查询对应的sql

下面传入的115.867543 和28.649779 为当前查询人的经纬度,最终的结果distance 就是距离的公里数

SELECT
	company_name,
	address_detail,
	address_province,
	address_city,
	address_county,
	location,
	ifnull(
		ROUND(
			ST_DISTANCE_SPHERE ( location, POINT ( CAST( 115.867543 AS DECIMAL ( 12, 6 )), CAST( 28.649779 AS DECIMAL ( 12, 6 ))) )/ 1000,
			2 
		),
		999999999999 
	) AS distance 
FROM
	ums_member_company_coordinate 

order by distance  asc 

在这里插入图片描述

二 、小程序实现

小程序需要获取到当前手机的经纬度,就是上面传入的15.867543 和28.649779,然后调用后台接口后台把结果渲染在页面上。

uniapp地图文档入口
在这里插入图片描述

相关文章:

  • 前端 - vue - - import引入报错 require引入不报错 package.json中type的用法 延迟导入资源
  • xsync集群分发脚本开发指南
  • 使用AI一步一步实现若依前端(9)
  • 游戏引擎学习第150天
  • 洗鞋小程序(源码+文档+讲解+演示)
  • Spring(4)——响应相关
  • 如何测试 item_get_video 小红书接口返回数据的详细说明
  • 【统计至简】【古典概率模型】联合概率、边缘概率、条件概率、全概率
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.4.2用户画像聚合(Terms Aggregation + Cardinality)
  • SpringCloud——环境搭建
  • html css网页制作成品——糖果屋网页设计(4页)附源码
  • Java中数据库索引选择B+树而非红黑树的详细解析
  • 【前端拓展】Canvas性能革命!WebGPU + WebAssembly混合渲染方案深度解析
  • 【MySQL】增删改查进阶
  • 学习C2CRS Ⅲ (Response Generation Module)
  • 【编程向导】-JavaScript-基础语法-类型检测
  • 软考高级信息系统项目管理师笔记-第23章组织通用管理
  • redis趣味解读
  • SpringMVC工作原理
  • Python :Pandas
  • 电商小程序需要什么资质/南京seo域名
  • 培训行业网站建设是什么/杭州seo公司排名
  • wordpress 功能定制/广州seo推广
  • 网站建设主动型电话销售话术/电商项目策划书
  • 深圳画册设计印刷/网站seo主要是做什么的
  • 域名查询备案/郑州整站网站优化