이것은 어려운 질문입니다. 하루 동안 저의 머리를 쾅 쾅 대고있었습니다. 도와주세요.Google지도에서 2 GeoPoints 사이의 주행 경로를 그리세요. SupportMapFragment
이 나는 구글이 조각을지도에서 나는 또한 2 GeoPoints 음모
private JSONObject GetDistance(String src, String dest) throws Exception
{
StringBuilder urlString = new StringBuilder();
urlString.append("http://maps.googleapis.com/maps/api/directions/json?");
urlString.append("origin=");// from
urlString.append(src);
urlString.append("&destination=");// to
urlString.append(dest);
urlString.append("&mode=driving&sensor=true&units=imperial");
// get the JSON And parse it to get the directions data.
HttpURLConnection urlConnection = null;
URL url = null;
url = new URL(urlString.toString());
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();
InputStream inStream = urlConnection.getInputStream();
BufferedReader bReader = new BufferedReader(new InputStreamReader(inStream));
String temp, response = "";
while ((temp = bReader.readLine()) != null)
{
// Parse data
response += temp;
}
// Close the reader, stream & connection
bReader.close();
inStream.close();
urlConnection.disconnect();
JSONObject object = (JSONObject) new JSONTokener(response).nextValue();
return (object);
}
아래 코드를 참조하십시오 내가 제공이 GeoPoints 사이 등 짧은 주행 거리와 경로, 포인트를 얻기 위해 Google지도 API를 사용 , SupportMapFragment, 즉이 라이브러리를 사용합니다. com.google.android.gms.maps.SupportMapFragment
내가 원하는 것은 위의 getDistance 함수에서 얻은 경로를 그려서 데이터를 출력합니다. JSON은 쉽게 처리 할 수 있습니다.
Here is the JSON object that I get from the getDistance function
{
"status": "OK",
"routes": [
{
"waypoint_order": [],
"summary": "Wilbraham Rd/A6010",
"bounds": {
"southwest": {
"lng": -2.26773,
"lat": 53.4301
},
"northeast": {
"lng": -2.19414,
"lat": 53.45106000000001
}
},
"legs": [
{
"duration": {
"value": 797,
"text": "13 mins"
},
"distance": {
"value": 7289,
"text": "4.5 mi"
},
"end_location": {
"lng": -2.19414,
"lat": 53.43052
},
"start_address": "137 College Road, Manchester, Greater Manchester M16 0AA, UK",
"end_address": "6 Ealing Place, Manchester M19, UK",
"start_location": {
"lng": -2.26773,
"lat": 53.45106000000001
},
"via_waypoint": [],
"steps": [
{
"html_instructions": "Head <b>southeast</b> on <b>College Rd</b> toward <b>Park Dr</b>",
"duration": {
"value": 83,
"text": "1 min"
},
"distance": {
"value": 729,
"text": "0.5 mi"
},
"end_location": {
"lng": -2.25758,
"lat": 53.45005
},
"polyline": {
"points": "ctfeIh|yLrBaEdAoB`@[email protected]][email protected]@M?]?WC}AAgAGyG?mAI{GG{[email protected]"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.26773,
"lat": 53.45106000000001
}
},
{
"html_instructions": "Turn <b>right</b> onto <b>Withington Rd</b>",
"duration": {
"value": 96,
"text": "2 mins"
},
"distance": {
"value": 747,
"text": "0.5 mi"
},
"end_location": {
"lng": -2.25703,
"lat": 53.44339
},
"polyline": {
"points": "ymfeIz|[email protected]@[email protected][email protected]?|[email protected]@[email protected]"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.25758,
"lat": 53.45005
}
},
{
"html_instructions": "Turn <b>left</b> onto <b>Wilbraham Rd/A6010</b>",
"duration": {
"value": 249,
"text": "4 mins"
},
"distance": {
"value": 2565,
"text": "1.6 mi"
},
"end_location": {
"lng": -2.21852,
"lat": 53.44261
},
"polyline": {
"points": "[email protected]}[email protected]@@{EFqGHcG?][email protected][email protected][email protected]@mQKcEK}[email protected]{[email protected]?_B?mABkALkCFgBF[[email protected]@[email protected][email protected]"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.25703,
"lat": 53.44339
}
},
{
"html_instructions": "Continue straight onto <b>Moseley Rd/B5093</b><div style=\"font-size:0.9em\">Continue to follow Moseley Rd</div><div style=\"font-size:0.9em\">Go through 1 roundabout</div>",
"duration": {
"value": 100,
"text": "2 mins"
},
"distance": {
"value": 974,
"text": "0.6 mi"
},
"end_location": {
"lng": -2.20411,
"lat": 53.44213000000001
},
"polyline": {
"points": "[email protected]@[email protected]{@[email protected]@[email protected]@[email protected]{@@_A?qAB}[email protected]@[email protected]@[email protected][?Q?MA[AUG][email protected][email protected][email protected][email protected]@[email protected][email protected]"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.21852,
"lat": 53.44261
}
},
{
"html_instructions": "At the roundabout, take the <b>2nd</b> exit onto <b>Kingsway/A34</b>",
"duration": {
"value": 63,
"text": "1 min"
},
"distance": {
"value": 694,
"text": "0.4 mi"
},
"end_location": {
"lng": -2.20629,
"lat": 53.43661
},
"polyline": {
"points": "i|[email protected][email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected]@@[email protected]@@[email protected]@@[email protected]@@@@[email protected]@@@@[email protected]@@[email protected][email protected]@@[email protected]^[email protected]@ZLD`@[email protected]@RrFvBLDhGxBjFdB"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.20411,
"lat": 53.44213000000001
}
},
{
"html_instructions": "Turn <b>left</b> onto <b>Grangethorpe Dr</b>",
"duration": {
"value": 56,
"text": "1 min"
},
"distance": {
"value": 415,
"text": "0.3 mi"
},
"end_location": {
"lng": -2.20015,
"lat": 53.43616
},
"polyline": {
"points": "yyceIh|mL\\[email protected]@[email protected]}@AI"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.20629,
"lat": 53.43661
}
},
{
"html_instructions": "Continue onto <b>Crossley Rd</b>",
"duration": {
"value": 45,
"text": "1 min"
},
"distance": {
"value": 394,
"text": "0.2 mi"
},
"end_location": {
"lng": -2.19433,
"lat": 53.43562000000001
},
"polyline": {
"points": "_wceI|[email protected]@L}@[email protected]{@"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.20015,
"lat": 53.43616
}
},
{
"html_instructions": "Turn <b>right</b> onto <b>Errwood Rd</b>",
"duration": {
"value": 60,
"text": "1 min"
},
"distance": {
"value": 607,
"text": "0.4 mi"
},
"end_location": {
"lng": -2.19615,
"lat": 53.43027000000001
},
"polyline": {
"points": "ssceIpqkL`GtA`B`@[email protected]@[email protected]|EnAjFlA"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.19433,
"lat": 53.43562000000001
}
},
{
"html_instructions": "Take the 2nd <b>left</b> onto <b>Watford Rd</b>",
"duration": {
"value": 12,
"text": "1 min"
},
"distance": {
"value": 83,
"text": "272 ft"
},
"end_location": {
"lng": -2.19492,
"lat": 53.4301
},
"polyline": {
"points": "erbeI||kL`@uF"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.19615,
"lat": 53.43027000000001
}
},
{
"html_instructions": "Turn <b>left</b> onto <b>Eastern Cir</b>",
"duration": {
"value": 20,
"text": "1 min"
},
"distance": {
"value": 65,
"text": "213 ft"
},
"end_location": {
"lng": -2.19415,
"lat": 53.43037
},
"polyline": {
"points": "[email protected]@[email protected]"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.19492,
"lat": 53.4301
}
},
{
"html_instructions": "Take the 2nd <b>left</b> onto <b>Ealing Pl</b>",
"duration": {
"value": 13,
"text": "1 min"
},
"distance": {
"value": 16,
"text": "52 ft"
},
"end_location": {
"lng": -2.19414,
"lat": 53.43052
},
"polyline": {
"points": "yrbeIlpkL]A"
},
"travel_mode": "DRIVING",
"start_location": {
"lng": -2.19415,
"lat": 53.43037
}
}
]
}
],
"warnings": [],
"overview_polyline": {
"points": "ctfeIh|[email protected][email protected]{[email protected][email protected]`@MfCA`GKhB?jGM`HKC{[email protected][email protected]@[email protected][[email protected]@[email protected][email protected]}A\\{C`@qCLkAFoAF{[email protected][email protected][email protected]@GDEBAYiEC?CACCEGEICMAMD[[email protected]@X^[email protected][email protected]\\|GjCvG~BjFdB\\[email protected]{@L}@[email protected]_GF{@`GtAzFvAdB^|EnAjFlA`@[email protected]@@[email protected]]A"
},
"copyrights": "Map data ©2013 Google"
}
]
}
제발 도와주세요, 나는 정말로 여기에서 길을 잃어버린다.
답변에 가까워지고 있습니다. https://developers.google.com/maps/documentation/android/shapes 폴리선이 필요합니다. –