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

深圳北斗部标平台网站建设望野原文及翻译

深圳北斗部标平台网站建设,望野原文及翻译,用html制作购物网站,做的网站首页图片显示不出来下面是一个结合 MySQL 数据库和 Redis 的地理位置服务示例,包含表结构、PHP 代码和 Redis 操作,用于处理基于地理位置的数据存储和查询。 1. 创建 MySQL 数据库表 首先,创建一个用于存储位置信息的 MySQL 表,如下所示&#xff1…

下面是一个结合 MySQL 数据库和 Redis 的地理位置服务示例,包含表结构、PHP 代码和 Redis 操作,用于处理基于地理位置的数据存储和查询。

1. 创建 MySQL 数据库表

首先,创建一个用于存储位置信息的 MySQL 表,如下所示:

CREATE TABLE locations (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,latitude DOUBLE NOT NULL,longitude DOUBLE NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

2. 将位置信息存储到 MySQL 和 Redis

在 PHP 中,我们可以将用户或商家的地理位置存储到 MySQL 数据库,并同步存储到 Redis 中。

// 数据库连接
$pdo = new PDO('mysql:host=localhost;dbname=geo_db', 'username', 'password');// Redis 连接
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);// 示例数据
$name = "Sample Location";
$latitude = 37.7749;
$longitude = -122.4194;// 插入到 MySQL
$stmt = $pdo->prepare("INSERT INTO locations (name, latitude, longitude) VALUES (?, ?, ?)");
$stmt->execute([$name, $latitude, $longitude]);// 获取插入的记录ID
$locationId = $pdo->lastInsertId();// 插入到 Redis Geo 数据结构
$redis->geoAdd('locations_geo', $longitude, $latitude, $locationId);

3. 根据当前位置查询附近的地点

使用 Redis 的 GEORADIUS 命令查询某个地理位置附近的所有地点,并返回相应的 MySQL 数据。

// 用户当前位置
$userLat = 37.7749;
$userLng = -122.4194;// 查询 Redis 中的附近地点,半径10公里以内
$nearbyLocationIds = $redis->geoRadius('locations_geo', $userLng, $userLat, 10, 'km', ['WITHDIST']);// 准备查询ID集合
$ids = array_map(function($item) {return $item[0];
}, $nearbyLocationIds);// 如果存在附近地点,查询详细信息
if (!empty($ids)) {$placeholders = str_repeat('?,', count($ids) - 1) . '?';$stmt = $pdo->prepare("SELECT * FROM locations WHERE id IN ($placeholders)");$stmt->execute($ids);$locations = $stmt->fetchAll(PDO::FETCH_ASSOC);foreach ($locations as $location) {echo "Name: " . $location['name'] . ", Distance: " . $nearbyLocationIds[array_search($location['id'], $ids)][1] . " km\n";}
} else {echo "No nearby locations found.\n";
}

4. 计算两个位置之间的距离

通过 Redis 的 GEODIST 命令可以快速计算两个位置之间的距离。

$locationId1 = 1; // Palermo
$locationId2 = 2; // Catania$distance = $redis->geoDist('locations_geo', $locationId1, $locationId2, 'km');
echo "Distance between Location 1 and Location 2: $distance km\n";

总结

通过这种方式,Redis 用于快速的地理位置查询和距离计算,而 MySQL 则存储详细的位置信息。结合两者,可以实现高效的地理位置服务,适用于各种需要地理信息处理的场景,如本地搜索、物流跟踪等。

http://www.yayakq.cn/news/386980/

相关文章:

  • 短网址网站大数据抓取客户软件
  • 找南昌网站开发公司电话简述网站建设和推广评价指标
  • ppt模板网站下载企业邮箱多少钱一年
  • 天津手机网站建设网上书城网站开发外文参考文献
  • 关于做网站建设公司你应该知道的wordpress5.0不能发布文章
  • 网站建设公司做网站要多少费用wordpress调用多说
  • 网站建设和信息更新的通知58同城建设网站
  • 电脑网站开发手机上可以打开吗外贸网站如何做seo
  • 网站建设视频百度网盘个人网站建设工作室
  • 加油站建设专业网站wordpress好玩的插件
  • 可以自己买服务器做网站吗贸易网站开发
  • 帮建网站核桃少儿编程加盟
  • 沈阳建设网站公司电脑网卡
  • 做网站需要营业执照吗企业邮箱哪家便宜
  • 先建网站还是先做网页网站建设的广告词
  • 做淘宝美工需要知道的网站wordpress添加分类到菜单
  • 营销网站建设大概费用最爱网
  • 网站建设与网页设计...nodejs可以做企业网站吗
  • 东莞网站推广优化网站wordpress批量修改
  • 中国人做暧暧视频网站推广策略包括哪些内容
  • 营销型企业网站分析与诊断中国室内设计网欧式
  • php网站开发案例详解常德论坛市民留言社区
  • 建设带数据搜索的网站免费国外建站
  • 石家庄住房城乡建设网站wordpress 页面编辑器
  • 大安移动网站建设大学 建网站
  • 创客贴网站建设asp网站模板安装教程
  • 促销礼品网站建设唐山企业网站建设公司
  • 临夏城乡建设局网站跨境网站建设
  • 用asp.net做企业网站软件界面设计软件有哪些
  • 辽宁建设培训网站钉钉企业注册流程