微信开发 LBS位置定位存在问题的改进 基于java语言和mysql数据库

微信开发在 LBS位置定位的存在问题,位置变化了或者重新存入地址后,系统提供的位置还是以前的位置记录。所以改进位置信息存取的方式。

1.位置定位的数据库表

CREATE TABLE IF NOT EXISTS `user_location` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'user_location id',
  `open_id` varchar(128) NOT NULL COMMENT 'user_location 用户的OpenID',
  `lng` varchar(30) NOT NULL COMMENT 'user_location lng',
  `lat` varchar(30) NOT NULL COMMENT 'user_location lat',
  `bd09_lng` varchar(30) DEFAULT NULL COMMENT 'user_location bd09_lng',
  `bd09_lat` varchar(30) DEFAULT NULL COMMENT 'user_location bd09_lat',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='user_location' AUTO_INCREMENT=7 ;
2.存在问题

user_location存入位置信息后,系统使用时获取的都是表中的第一条记录。所以改进表为:

CREATE TABLE IF NOT EXISTS `user_location` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'user_location id',
  `open_id` varchar(128) NOT NULL COMMENT 'user_location 用户的OpenID',
  `lng` varchar(30) NOT NULL COMMENT 'user_location lng',
  `lat` varchar(30) NOT NULL COMMENT 'user_location lat',
  `bd09_lng` varchar(30) DEFAULT NULL COMMENT 'user_location bd09_lng',
  `bd09_lat` varchar(30) DEFAULT NULL COMMENT 'user_location bd09_lat',
  `time` varchar(128) DEFAULT NULL  COMMENT 'user_location time',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='user_location' AUTO_INCREMENT=1 ;

增加:time 字段

3.获取位置信息

每次取记录中时间最大的记录。

String sql = "select open_id, lng, lat, bd09_lng, bd09_lat  <pre code_snippet_id="674520" snippet_file_name="blog_20150525_3_5090141" name="code" class="sql">              from user_location where open_id=? order by time desc limit 0,1";
 
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">order by time desc limit 0,1 是按时间降序排列,取一条记录</span>

order by time desc 是按时间降序排列(最大值记录在第一条)

 limit 0,1取一条记录

4.效果图见 生活助理-周边搜索

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值