`

【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  
不错不错。。

相关推荐

    Unity LBS 高德瓦片地图

    unity 跨平台(PC,Android ,IOS)实现高德地图加载

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

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

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

    本代码利用高德lbs,能够实时显示用户的行动轨迹,并能将定位信息写入SD卡进行存储,供参考

    高德地图api的调用

    高德地图的api的调用,和导航,定位,lbs的产讯.公交的功能实现.

    高德地图 citycode编码表

    高德地图 citycode编码表 更新地址http://lbs.amap.com/api/webservice/download

    高德地图apk

    高德地图(Amap) 是国内一流的免费地图导航产品,也是基于位置的生活服务功能最全面、信息最丰富的手机地图,由国内最大的电子地图、导航和LBS服务解决方案提供商高德软件提供。高德地图采用领先的技术为用户打造了...

    iOS高德地图定位周边交通图LBS

    高德地图的demo,继承了定位(包含三种模式)、周边搜索(自定义范围在范围内显示搜索内容)、交通图(交通实时状态反馈).下载了之后看不明白的可以去高德开发者论坛,里面有简单的项目调试,比如key的添加,plist...

    Java实现根据地址调用高德地图获取经纬度等信息

    这里,我选择的是高德平台,下面是一个从注册到简单使用的例子,可供大家学习参考,更深入的使用,大家可参考官网学习。 1、关于高德开放平台 高德开放平台的网址:http://lbs.amap.com/ 注册账号:如果之前没有注册...

    LBS之百度地图实例

    LBS之百度地图实例,大家可以看看,相互交流

    如何运用高德地图开放平台打造一流位置应用

    通过此次演讲大家可以了解到如何通过高德开放平台的各个产品来构建属于...同时我们也会介绍一些在LBS类应用开发中如何省电、省流量及提高效率等注意事项,最后我们还会和大家分享一些使用高德地图开放平台成功案例。

    高德地图环境配置和演示

    高德地图环境配置和代码演示,手把手教你开发iOS下的LBS app

    高德地图省市区县街道的JSON

    高德地图最新省市区县JSON,包含坐标,身份证号前6位,区号,城市名,城市级别 精确到街道/乡镇级别 高德API地址:https://lbs.amap.com/api/webservice/guide/api/district/?sug_index=1

    LBS:高德地图免 key 定位组件

    支持一次性定位,持续定位,无需考虑之间切换逻辑定位信息全面,包含了经纬度、街道信息、错误码、以及当前的GPS状态等详细信息说明这套组件是在高德地图基础上进行封装的,其最大的特点就是免申请 key 便可使用。...

    高德地图SDK开发实践:LBS开发省电经验及地图SDK添加自定义点

    PPT来自高德LBS开放平台资深研发经理朴春植在车库咖啡的“高德地图SDK开发实践沙龙”上的分享。沙龙中朴春植向开发者分享了LBS开发省电经验及如何给地图SDK添加自定义点等内容。

    Python 利用高德地图api实现经纬度与地址的批量转换

    我们都知道,可以使用高德地图api实现经纬度与地址的转换。那么,当我们有很多个地址与经纬度,需要批量转换的时候,应该怎么办呢? 在这里,选用高德Web服务的API,其中的地址/逆地址编码,可以实现经纬度与地址的...

    省市区县高德地图2019.9.25

    高德地图最新省市区县JSON,包含坐标,身份证号前6位,区号,城市名,城市级别 高德API地址:https://lbs.amap.com/api/webservice/guide/api/district/?sug_index=1

    高德地图定位demo

    1,先去高德地图API官网获取一个web浏览器的key 2,修改myLocate.js第22行的key值 3,使用pc浏览器的响应式访问可能有问题,用Hbuilder或者花生壳发布出去用手机访问即可获取当前位置信息 4,获取其他信息可以参考...

    LBS地图源码

    LBS 地图LBS 地图LBS 地图LBS 地图LBS 地图LBS 地图LBS 地图

    Android开发之高德地图实现定位

    在应用开发中,地图开发是经常需要使用的“组件”,Google Map虽然有官方教程,无奈用不起来,原因你懂的~~那么国内比较出名的是就是百度地图和高德地图,由于个人喜好,所以选择了高德地图LBS,废话不说,上干货。...

    高德地图:获取定位以及周边建筑

    https://www.cnblogs.com/similar/p/9401841.html https://lbs.amap.com/api/webservice/guide/api/ipconfig https://article.itxueyuan.com/XbODQ

Global site tag (gtag.js) - Google Analytics