`

【LBS】使用高德地图实现轨迹路线

 
阅读更多
最近这段时间瞎研究,想做一些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
分享到:
评论
1 楼 di1984HIT 2015-12-25  
不错不错。。

相关推荐

    android之基于高德地图的移动轨迹的可视化

    在Android开发中,基于高德地图实现移动轨迹的可视化是一项常用且重要的技术。高德地图API为开发者提供了丰富的功能,包括地图展示、定位、路径规划、轨迹追踪等,使得我们能够在移动应用中轻松地实现地理位置相关...

    解决高德地图锁屏黑屏定位不更新,高德地图绘制定位轨迹,高德定位判断定位停留点,高德地图将所有坐标绘制在可视区域内

    解决高德地图锁屏黑屏定位不更新,高德地图绘制定位轨迹,高德定位判断定位停留点,高德地图绘制弹出框等内容。高德地图将所有坐标绘制在可视区域内,本程序作为向高德地图申请高德LBS开发平台开发者认证证书的做业...

    加载高德地图显示行走轨迹

    本案例主要涉及了如何利用高德地图API(Location-Based Services,LBS)实现这一功能,并将定位信息存储到SD卡上。以下是对这个主题的详细解释: 1. **高德地图API**:高德地图是一款广泛使用的地图服务,它提供了...

    Android高级应用源码-高德地图标注 路线规划.zip

    本项目"Android高级应用源码-高德地图标注 路线规划.zip"旨在深入探讨如何在Android应用中集成高德地图,并实现地图上的标注以及路线规划功能。下面将详细介绍这两个关键知识点。 1. **高德地图API集成**: 首先,...

    LBS轨迹平滑播放示例

    它支持多种地图源,如谷歌地图、高德地图、OpenStreetMap等,用户可以自定义图层和样式,以适应不同的需求。 3. **时间线控制**:TimeLineLite.min.js是一个轻量级的时间线库,可能用于控制轨迹的播放速度、暂停、...

    集成高德地图定位功能demo

    高德地图API提供了丰富的服务,可以帮助开发者轻松实现这一功能。"集成高德地图定位功能demo"是一个示例项目,旨在展示如何将高德地图的定位服务整合到你的应用程序中。通过分析这个Demo,我们可以学习到以下关键...

    基于Android系统和高德LBS服务的互联网 无人机位置报告系统设计.pdf

    监控端同样使用Android设备,通过高德地图API获取并显示无人机位置。云服务平台则提供数据处理、地图数据和各种服务支持。 2.2 系统架构与工作原理 系统采用C/S架构,机载端作为客户端,接收卫星信号计算位置,利用...

    基于lbs的地图定位demo.7z

    实现地图定位通常需要集成第三方地图API,如Google Maps API、高德地图API或百度地图API。这些API提供了地图显示、定位、路径规划等功能,开发者可以通过调用相应的SDK来实现。 5. **定位权限和API使用** 在...

    LBS学习书籍

    主流的地图服务提供商如Google Maps、高德地图和百度地图都提供了丰富的API,允许开发者在应用中集成地图显示、路径规划、地理编码(将地址转化为坐标)和反地理编码(将坐标转化为地址)等功能。学习如何有效利用...

    基于Android和LBS的老人关爱系统的设计和实现.pdf

    "基于Android和LBS的老人关爱系统的设计和实现" 本文研究设计了一个基于Android和LBS的老人关爱系统,主要帮助家庭对老年人进行照料。系统主要实现了看护人对被看护人(老人)的实时位置查询、历史轨迹查询,看护人...

    百度,高德,谷歌定位应用实例

    接下来是高德地图定位。高德同样提供了SDK和API供开发者使用。其定位服务准确、快速,支持实时和历史轨迹查询。高德的定位接口可以获取到用户的精确位置,并且能够结合交通状况提供智能路径规划。此外,高德还支持...

    共享出行的LBS实践-LBS服务如何助力共享单车-杨巍.pdf

    据统计,目前大约有85%的手机用户在日常出行中依赖高德地图等LBS服务,这显示了其在出行市场的普及程度。 在共享单车的使用过程中,LBS服务能有效解决“如何展示附近车辆”的问题。面对使用者周围可能存在的大量...

    大数据LBS.docx

    此外,LBS还能为用户推荐附近的餐饮、娱乐设施,结合路线规划和导航功能,实现线上线下融合的消费体验。 数据产品的模式多种多样,包括直接出售数据、深度加工后销售、数据整合提供高级服务、提供计算能力如推荐...

    LBS^2 Are u Happy

    3. **地图API集成**:为了实现LBS功能,网页模板可能集成了如Google Maps、Baidu Maps或高德地图等地图API。这些API允许在网页上显示地图,标记用户位置,提供路线规划等服务。 4. **定位技术**:除了传统的GPS,...

    LBS^2 我们的爱

    2. **地图集成**:LBS应用常常需要集成地图服务,如Google Maps、百度地图或高德地图,以展示用户的位置或推荐附近的地点。这需要通过API调用实现,同时可能需要自定义标记、路径和信息窗口。 3. **社交互动**:...

    城市搜索定位

    5. 地图服务:像百度地图、高德地图等地图服务平台,提供丰富的地理信息,包括城市、街道、建筑物等。它们与定位服务结合,将用户的实时位置标示在地图上,提供导航指引。 6. IP定位:通过分析用户的IP地址,可以...

    麦扑:一站式手绘智能导游服务系统技术.pdf

    麦扑地图的数据与高德、百度地图进行精准匹配,不仅提供了直观的导航服务,还为游客在旅行过程中提供了情境化的导游服务。 【智能数据感知技术】在旅游业中的应用主要包括三个方面:一是WiFi探针技术,通过智能设备...

    手机导航APP的盈利模式介绍.docx

    但该APP缺乏像高德的地图数据和百度的流量引擎,难以在O2O市场中竞争,成为主要入口的机会渺茫。 4. **商业服务**:这是最具有潜力的盈利渠道。首先,可以利用群组导航功能提供增值服务,例如车队管理、家庭定位等...

Global site tag (gtag.js) - Google Analytics