我正在开发一个简单的公共交通应用程序,包括公共汽车和停靠站。 公共汽车没有GPS。每个公共汽车站都是类型位置的对象。
我如何规划沿街道的每辆公共汽车的路线,这些路线是否符合道路标志(两个公共汽车站之间的距离)以及如何步行前往公交车站?
因为使用
location1.distanceBetweenTo(location2)
在乌鸦飞过时返回距离。
是否可以在2个位置(公共汽车站)之间有时间?因为公共汽车公司没有每个站点和时间的计划,但从出发站和到站站点的仿制时间。
我已经创建了地图,在谷歌控制台上获取了api密钥,我想每个巴士站都可以用标记表示。
- 编辑 -
这段代码似乎有效但是如何创建结果?
final JSONObject json = new JSONObject(result);
JSONArray routeArray = json.getJSONArray("routes");
JSONObject routes = routeArray.getJSONObject(0);
JSONArray newTempARr = routes.getJSONArray("legs");
JSONObject newDisTimeOb = newTempARr.getJSONObject(0);
JSONObject distOb = newDisTimeOb.getJSONObject("distance");
JSONObject timeOb = newDisTimeOb.getJSONObject("duration");
Log.i("Distance :", distOb.getString("text"));
Log.i("Time :", timeOb.getString("text"));
我使用了一些jsonParser,但没有任何效果。如何从纬度和经度开始创建它?
我已经尝试过这种方式了。
String url =" https://maps.googleapis.com/maps/api/directions/json?origin=41.221298,16.286054&destination=41.217956,16.2988407&key="my api key"
此字符串传递给
private String getResponseText(String stringUrl) throws IOException
{
StringBuilder response = new StringBuilder();
URL url = new URL(stringUrl);
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK)
{
BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192);
String strLine = null;
while ((strLine = input.readLine()) != null)
{
response.append(strLine);
}
input.close();
}
return response.toString();
}
但没有任何改变。
答案 0 :(得分:1)
这种从url获取Json的方法适用于我
public JSONObject getJson(String url) {
String responce = null;
HttpURLConnection conn = null;
try {
URL jUrl = new URL(url);
conn = (HttpURLConnection)jUrl.openConnection();
InputStream is = (InputStream)conn.getContent();
java.util.Scanner scanner = new java.util.Scanner(is).useDelimiter("\\A");
responce = scanner.hasNext() ? scanner.next() : "";
//log.debug( " responce " + responce);
return new JSONObject(responce);
} catch (IOException ex){
String errTxt = "Internet access failure";
if (conn != null && (ex instanceof java.io.FileNotFoundException))
try{
// Read the first line of err message the site possibly returned. Kind of
// {"cod":401,"message":"Invalid API key. Please see http://openweathermap.org/faq#error401 for more info."}
errTxt = (new BufferedReader(new InputStreamReader(conn.getErrorStream())))
.readLine();
if (errTxt == null)
errTxt ="(Server provided no ErrorStream)";
} catch (Exception ex2){
log.error(errTxt + " when retrieving ErrorStream", ex2);
}
log.error(errTxt, ex);
} catch (JSONException ex) {
log.error("Invalid responce from " + url, ex);
} catch (Exception ex){
log.error("Failed to get responce from " + url, ex);
}
finally {
if (conn != null)
conn.disconnect();
}
return null;
}