最近这段时间瞎研究,想做一些LBS的东西。
初步定为一个路线行驶的。
首先选择地图,百度或者高德。
百度之前有做过,还行,所以试用下高德怎样。
首先地理位置容易获得,从android手机的GPS模块就能获取到。
展现的问题。
首先展现必须有路线,有时间,就涉及到一些技术层面的东西, 比如连线。标点什么的。
如图所示即显示路线及行程。
--------------------------------------------------
修改为jquery方式调用获取后台地理位置信息
数据库:
his_position
id int,utime date,x double,y double;
后台采用servlet返回json给前端,jquery获取json进行解析并计入到地址。
后台数据库代码:
package com.duduli.li.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JDBCConnect {
static Connection conn = null;
public static Connection getConnect() {
String driver = "org.mariadb.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/route";
String user = "root";
String password = "admin";
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void closed() {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// 获取时间
public String getUpdateTimeJson() {
// Goods g = new Goods();
// StringBuilder sb = new StringBuilder();
JSONArray jsonArray = null;
Statement statement = null;
ResultSet rs = null;
try {
statement = getConnect().createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "select u_time from his_position";
try {
rs = statement.executeQuery(sql);
List<String> list = new ArrayList<String>();
// sb.append("[");
while(rs.next()){
// member.put("time", rs.getString("u_time"));
// member.put("position", rs.getDouble("x")+","+rs.getDouble("y"));
// sb.append("\""+rs.getString("u_time")+"\",");
list.add(rs.getString("u_time"));
}
// sb.append("]");
jsonArray = JSONArray.fromObject(list);
rs.close();
closed();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsonArray.toString();
}
// 获取时间
public String getPositionJson() {
// Goods g = new Goods();
// StringBuilder sb = new StringBuilder();
JSONArray array = new JSONArray();
JSONObject member = new JSONObject();
Statement statement = null;
ResultSet rs = null;
try {
statement = getConnect().createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "select u_time,x,y from his_position";
try {
rs = statement.executeQuery(sql);
List<String> list = new ArrayList<String>();
while(rs.next()){
member.put("time", rs.getString("u_time"));
member.put("position_x", rs.getDouble("x"));
member.put("position_y", rs.getDouble("y"));
array.add(member);
}
rs.close();
closed();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return array.toString();
}
// 将数据库获得的rs转换称json
public JSONObject rsToJson(ResultSet rs) throws SQLException{
JSONObject json = new JSONObject();
JSONArray array = new JSONArray();
JSONObject member = new JSONObject();
while(rs.next()){
member.put("time", rs.getString("u_time"));
// member.put("position", rs.getDouble("x")+","+rs.getDouble("y"));
array.add(member);
}
// json.put("account", account);
json.put("jsonArray", array);
return json;
}
}
servlet代码:
package com.duduli.li.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.duduli.li.db.JDBCConnect;
/**
* Servlet implementation class RePosition
*/
@WebServlet("/RePosition")
public class RePosition extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public RePosition() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String json = "";
JDBCConnect j = new JDBCConnect();
json = j.getPositionJson();
PrintWriter pw = response.getWriter();
pw.print(json);
System.out.println("json object :"+json.toString());
pw.flush();
pw.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
前端主要代码:
lineArr = new Array();
timeArr = new Array();
$(function(){
$.ajax({
url:'./RePosition',
data:{},
async: false,
dataType:'json', //很重要!!!. 预期服务器返回的数据类型
success:function(data){
$.each(data, function(i){
timeArr.push(data[i].time);
lineArr.push(new AMap.LngLat(data[i].position_x,data[i].position_y));
});
}
});
});
- 大小: 275.2 KB
分享到:
相关推荐
在Android开发中,基于高德地图实现移动轨迹的可视化是一项常用且重要的技术。高德地图API为开发者提供了丰富的功能,包括地图展示、定位、路径规划、轨迹追踪等,使得我们能够在移动应用中轻松地实现地理位置相关...
解决高德地图锁屏黑屏定位不更新,高德地图绘制定位轨迹,高德定位判断定位停留点,高德地图绘制弹出框等内容。高德地图将所有坐标绘制在可视区域内,本程序作为向高德地图申请高德LBS开发平台开发者认证证书的做业...
本案例主要涉及了如何利用高德地图API(Location-Based Services,LBS)实现这一功能,并将定位信息存储到SD卡上。以下是对这个主题的详细解释: 1. **高德地图API**:高德地图是一款广泛使用的地图服务,它提供了...
本项目"Android高级应用源码-高德地图标注 路线规划.zip"旨在深入探讨如何在Android应用中集成高德地图,并实现地图上的标注以及路线规划功能。下面将详细介绍这两个关键知识点。 1. **高德地图API集成**: 首先,...
它支持多种地图源,如谷歌地图、高德地图、OpenStreetMap等,用户可以自定义图层和样式,以适应不同的需求。 3. **时间线控制**:TimeLineLite.min.js是一个轻量级的时间线库,可能用于控制轨迹的播放速度、暂停、...
高德地图API提供了丰富的服务,可以帮助开发者轻松实现这一功能。"集成高德地图定位功能demo"是一个示例项目,旨在展示如何将高德地图的定位服务整合到你的应用程序中。通过分析这个Demo,我们可以学习到以下关键...
监控端同样使用Android设备,通过高德地图API获取并显示无人机位置。云服务平台则提供数据处理、地图数据和各种服务支持。 2.2 系统架构与工作原理 系统采用C/S架构,机载端作为客户端,接收卫星信号计算位置,利用...
实现地图定位通常需要集成第三方地图API,如Google Maps API、高德地图API或百度地图API。这些API提供了地图显示、定位、路径规划等功能,开发者可以通过调用相应的SDK来实现。 5. **定位权限和API使用** 在...
主流的地图服务提供商如Google Maps、高德地图和百度地图都提供了丰富的API,允许开发者在应用中集成地图显示、路径规划、地理编码(将地址转化为坐标)和反地理编码(将坐标转化为地址)等功能。学习如何有效利用...
"基于Android和LBS的老人关爱系统的设计和实现" 本文研究设计了一个基于Android和LBS的老人关爱系统,主要帮助家庭对老年人进行照料。系统主要实现了看护人对被看护人(老人)的实时位置查询、历史轨迹查询,看护人...
接下来是高德地图定位。高德同样提供了SDK和API供开发者使用。其定位服务准确、快速,支持实时和历史轨迹查询。高德的定位接口可以获取到用户的精确位置,并且能够结合交通状况提供智能路径规划。此外,高德还支持...
据统计,目前大约有85%的手机用户在日常出行中依赖高德地图等LBS服务,这显示了其在出行市场的普及程度。 在共享单车的使用过程中,LBS服务能有效解决“如何展示附近车辆”的问题。面对使用者周围可能存在的大量...
此外,LBS还能为用户推荐附近的餐饮、娱乐设施,结合路线规划和导航功能,实现线上线下融合的消费体验。 数据产品的模式多种多样,包括直接出售数据、深度加工后销售、数据整合提供高级服务、提供计算能力如推荐...
3. **地图API集成**:为了实现LBS功能,网页模板可能集成了如Google Maps、Baidu Maps或高德地图等地图API。这些API允许在网页上显示地图,标记用户位置,提供路线规划等服务。 4. **定位技术**:除了传统的GPS,...
2. **地图集成**:LBS应用常常需要集成地图服务,如Google Maps、百度地图或高德地图,以展示用户的位置或推荐附近的地点。这需要通过API调用实现,同时可能需要自定义标记、路径和信息窗口。 3. **社交互动**:...
5. 地图服务:像百度地图、高德地图等地图服务平台,提供丰富的地理信息,包括城市、街道、建筑物等。它们与定位服务结合,将用户的实时位置标示在地图上,提供导航指引。 6. IP定位:通过分析用户的IP地址,可以...
麦扑地图的数据与高德、百度地图进行精准匹配,不仅提供了直观的导航服务,还为游客在旅行过程中提供了情境化的导游服务。 【智能数据感知技术】在旅游业中的应用主要包括三个方面:一是WiFi探针技术,通过智能设备...
但该APP缺乏像高德的地图数据和百度的流量引擎,难以在O2O市场中竞争,成为主要入口的机会渺茫。 4. **商业服务**:这是最具有潜力的盈利渠道。首先,可以利用群组导航功能提供增值服务,例如车队管理、家庭定位等...