几个要点
1、先申请 ak 目前是32位或24位。
2、其次调用格式类似于
http://api.map.baidu.com/direction?mode=driving&origin=”+xx+”,”+yy+”&destination=36.11111,120.11111&output=html&ak=xxxxxxxxxx®ion=”+URLEncoder.encode(“青岛”,”UTF-8”)
此处问题在于 ,你不加region地区时,无法正常计算路径,
另外如果不用encode转码,安卓可用,苹果微信不可用,打开是空白。
3、如origin=name:青岛某地|latlng:xx,yyy 这种形式指定目标的名称,你无论是否转码,苹果微信都不可用,安卓可用,即你不能指定起止点的名称。这是美中不足的地方。
4、微信得到的位置是SOGO或GOOGLE的坐标,如果调用百度地图需要进行一次转换
地址如下 http://api.map.baidu.com/geoconv/v1/?coords=”+y+”,”+x+”&from=3&to=5&ak=yourak
其中 y与 x的位置,与微信得到的x,y相反,需要注意。转换的方法如下 需要有json-lib包。
public static String[] httpRequest(String y, String x) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
String requestUrl = “http://api.map.baidu.com/geoconv/v1/?coords=”+y+”,”+x+”&from=3&to=5&ak=xxxxxxxxxxxxxxxxxxxxx”;
String outputStr = null;
String requestMethod = “GET”;
String result[] = null;
try {
// System.out.println(requestUrl);
URL url = new URL(requestUrl);
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if (“GET”.equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 当有数据需要提交时
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes(“UTF-8”));
outputStream.close();
}
// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, “utf-8”);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
jsonObject = JSONObject.fromObject(buffer.toString());
if(jsonObject!=null) {
String yy = “”;
String xx = “”;
result = new String[] {“”,”“};
JSONArray nameList = jsonObject.getJSONArray(“result”);
JSONObject j0 = nameList.getJSONObject(0);
result[0] = j0.getString(“y”);
result[1] = j0.getString(“x”);
}
} catch (ConnectException ce) {
ce.printStackTrace();
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
return result;
}
1、先申请 ak 目前是32位或24位。
2、其次调用格式类似于
http://api.map.baidu.com/direction?mode=driving&origin=”+xx+”,”+yy+”&destination=36.11111,120.11111&output=html&ak=xxxxxxxxxx®ion=”+URLEncoder.encode(“青岛”,”UTF-8”)
此处问题在于 ,你不加region地区时,无法正常计算路径,
另外如果不用encode转码,安卓可用,苹果微信不可用,打开是空白。
3、如origin=name:青岛某地|latlng:xx,yyy
4、微信得到的位置是SOGO或GOOGLE的坐标,如果调用百度地图需要进行一次转换
地址如下 http://api.map.baidu.com/geoconv/v1/?coords=”+y+”,”+x+”&from=3&to=5&ak=yourak
其中 y与 x的位置,与微信得到的x,y相反,需要注意。转换的方法如下 需要有json-lib包。
public static String[] httpRequest(String y, String x) {