高德地图之骑行路径规划(替换你的KEY)
路径规划路径规划API:http://lbs.amap.com/api/webservice/guide/api/direction
package com.gdmap.jopo.rideline;
public class RideLineJson {
private Data data;
private String errcode;
private String errdetail;
private String errmsg;
public RideLineJson(Data data, String errcode, String errdetail,
String errmsg) {
super();
this.data = data;
this.errcode = errcode;
this.errdetail = errdetail;
this.errmsg = errmsg;
}
public RideLineJson() {
super();
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public String getErrcode() {
return errcode;
}
public void setErrcode(String errcode) {
this.errcode = errcode;
}
public String getErrdetail() {
return errdetail;
}
public void setErrdetail(String errdetail) {
this.errdetail = errdetail;
}
public String getErrmsg() {
return errmsg;
}
public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
}
@Override
public String toString() {
return "RideLineJson [data=" + data + ", errcode=" + errcode
+ ", errdetail=" + errdetail + ", errmsg=" + errmsg + "]";
}
}
public class Data {
private String origin;
private String destination;
private Paths paths;
public Data(String origin, String destination, Paths paths) {
super();
this.origin = origin;
this.destination = destination;
this.paths = paths;
}
public Data() {
super();
}
public String getOrigin() {
return origin;
}
public void setOrigin(String origin) {
this.origin = origin;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public Paths getPaths() {
return paths;
}
public void setPaths(Paths paths) {
this.paths = paths;
}
@Override
public String toString() {
return "Data [origin=" + origin + ", destination=" + destination
+ ", paths=" + paths + "]";
}
}
package com.gdmap.jopo.rideline;
import java.util.List;
public class Paths {
private String distance;
private String duration;
private List<Steps> steps;
public Paths() {
super();
}
public Paths(String distance, String duration, List<Steps> steps) {
super();
this.distance = distance;
this.duration = duration;
this.steps = steps;
}
public String getDistance() {
return distance;
}
public void setDistance(String distance) {
this.distance = distance;
}
public String getDuration() {
return duration;
}
public void setDuration(String duration) {
this.duration = duration;
}
public List<Steps> getSteps() {
return steps;
}
public void setSteps(List<Steps> steps) {
this.steps = steps;
}
@Override
public String toString() {
return "Paths [distance=" + distance + ", duration=" + duration
+ ", steps=" + steps + "]";
}
}
package com.gdmap.jopo.rideline;
public class Steps {
private String instrution;
private String road;
private String distance;
private String orientation;
private String duration;
private String polyline;
private String action;
private String assistant_action;
public Steps() {
super();
}
public Steps(String instrution, String road, String distance,
String orientation, String duration, String polyline,
String action, String assistant_action) {
super();
this.instrution = instrution;
this.road = road;
this.distance = distance;
this.orientation = orientation;
this.duration = duration;
this.polyline = polyline;
this.action = action;
this.assistant_action = assistant_action;
}
public String getInstrution() {
return instrution;
}
public void setInstrution(String instrution) {
this.instrution = instrution;
}
public String getRoad() {
return road;
}
public void setRoad(String road) {
this.road = road;
}
public String getDistance() {
return distance;
}
public void setDistance(String distance) {
this.distance = distance;
}
public String getOrientation() {
return orientation;
}
public void setOrientation(String orientation) {
this.orientation = orientation;
}
public String getDuration() {
return duration;
}
public void setDuration(String duration) {
this.duration = duration;
}
public String getPolyline() {
return polyline;
}
public void setPolyline(String polyline) {
this.polyline = polyline;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getAssistant_action() {
return assistant_action;
}
public void setAssistant_action(String assistant_action) {
this.assistant_action = assistant_action;
}
@Override
public String toString() {
return "Steps [instrution=" + instrution + ", road=" + road
+ ", distance=" + distance + ", orientation=" + orientation
+ ", duration=" + duration + ", polyline=" + polyline
+ ", action=" + action + ", assistant_action="
+ assistant_action + "]";
}
}
package com.gdmap.util.map;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gdmap.jopo.rideline.Data;
import com.gdmap.jopo.rideline.Paths;
import com.gdmap.jopo.rideline.RideLineJson;
import com.gdmap.jopo.rideline.Steps;
import com.hbbc.util.HttpUtil;
public class MapLineUtil {
private static String URL = "http://restapi.amap.com/v4/direction/bicycling";
private static String key = "/*你的KEY*/";
/**
* @author mzm
* @param originX 经度X
* @param originY 经度Y
* @param destinationX 纬度X
* @param destinationY 纬度Y
* @return RideLineJson 骑行路线
*/
public static RideLineJson RideLine(String originX,String originY,String destinationX,String destinationY){
URL += "?key=" + key;
URL += "&origin=" + originX + "," + originY;
URL += "&destination=" + destinationX + "," + destinationY;
String result = HttpUtil.callWebPage(URL, null);
//System.out.println(result);
JSONObject jsonObject = JSON.parseObject(result);
RideLineJson rideLineJson = new RideLineJson();
rideLineJson.setErrcode(jsonObject.getString("errcode"));
rideLineJson.setErrdetail(jsonObject.getString("errdetail"));
rideLineJson.setErrmsg(jsonObject.getString("errmsg"));
//JSONArray jsonArrayDate = jsonObject.getJSONArray("data");
JSONObject jsonObjectData = (JSONObject)jsonObject.get("data");
Data data = new Data();
data.setDestination(jsonObjectData.getString("destination"));
data.setOrigin(jsonObjectData.getString("origin"));
JSONArray jsonArrayPaths = jsonObjectData.getJSONArray("paths");
JSONObject jsonObjectPaths = null;
for(int i = 0;i < jsonArrayPaths.size();i++){
jsonObjectPaths = (JSONObject)jsonArrayPaths.get(i);
Paths paths = new Paths();
paths.setDistance(jsonObjectPaths.getString("distance"));
paths.setDuration(jsonObjectPaths.getString("duration"));
JSONArray jsonArraySteps = jsonObjectPaths.getJSONArray("steps");
JSONObject jsonObjectSteps = null;
List<Steps> steps = new ArrayList<Steps>();
for(int j = 0;j < jsonArraySteps.size();j++){
Steps step = new Steps();
jsonObjectSteps = (JSONObject)jsonArraySteps.get(j);
step.setInstrution(jsonObjectSteps.getString("instruction"));
step.setAction(jsonObjectSteps.getString("action"));
step.setAssistant_action(jsonObjectSteps.getString("assistant_action"));
step.setDistance(jsonObjectSteps.getString("distance"));
step.setDuration(jsonObjectSteps.getString("duration"));
step.setOrientation(jsonObjectSteps.getString("orientation"));
step.setPolyline(jsonObjectSteps.getString("polyline"));
step.setRoad(jsonObjectSteps.getString("road"));
steps.add(step);
}
paths.setSteps(steps);
data.setPaths(paths);
rideLineJson.setData(data);
System.out.println(rideLineJson.toString());
}
return rideLineJson;
}
}
测试:
package com.hbbc.test;
import com.gdmap.util.map.MapLineUtil;
public class Test {
public static void main(String[] args) {
MapLineUtil.RideLine("116.434307","39.90909","116.434446","39.90816");
}
}
输出结果:
RideLineJson [data=Data [origin=116.434307,39.90909, destination=116.434446,39.90816, paths=Paths [distance=217, duration=52,
steps=[Steps [instrution=骑行54米右转, road=, distance=54, orientation=, duration=13, polyline=116.434319,39.90905;116.434967,39.90905,
action=右转, assistant_action=], Steps [instrution=沿建国门北大街向南骑行115米右转, road=建国门北大街, distance=115, orientation=南,
duration=28, polyline=116.434967,39.90905;116.434952,39.908985;116.434891,39.908867;116.434891,39.908867;116.434814,39.908653;
116.43483,39.908428;116.434883,39.908302;116.434883,39.908302;116.434975,39.908195;116.435005,39.908104;116.435005,39.908081, action=右转,
assistant_action=], Steps [instrution=骑行48米到达目的地, road=, distance=48, orientation=, duration=12, polyline=116.435005,39.90807;
116.434456,39.90807, action=, assistant_action=到达目的地]]]], errcode=0, errdetail=null, errmsg=OK]