您的位置:首页 > 移动开发 > 微信开发

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

2015-05-25 09:47 501 查看
微信开发在 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.效果图见 生活助理-周边搜索

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐