嘿我在运行应用程序时出现错误jDocument doc = md.getDocument(fromPosition,toPosition,GMapDirection.MODE_DRIVING),所以请任何人帮我解决这个问题。
ManinActivity代码如下:
public class MainActivity extends Activity {
GoogleMap map;
GMapDirection md;
LatLng fromPosition = new LatLng(13.687140112679154, 100.53525868803263);
LatLng toPosition = new LatLng(13.683660045847258, 100.53900808095932);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
LatLng coordinates = new LatLng(13.685400079263206, 100.537133384495975);
map.animateCamera(CameraUpdateFactory.newLatLngZoom(coordinates, 16));
map.addMarker(new MarkerOptions().position(fromPosition).title("Start"));
map.addMarker(new MarkerOptions().position(toPosition).title("End"));
Document doc = md.getDocument(fromPosition, toPosition, GMapDirection.MODE_DRIVING);
int duration = md.getDurationValue(doc);
String distance = md.getDistanceText(doc);
String start_address = md.getStartAddress(doc);
String copy_right = md.getCopyRights(doc);
ArrayList<LatLng> directionPoint = md.getDirection(doc);
PolylineOptions rectLine = new PolylineOptions().width(3).color(Color.RED);
for(int i = 0 ; i < directionPoint.size() ; i++) {
rectLine.add(directionPoint.get(i));
}
map.addPolyline(rectLine);
}
}
// GMapDirection类代码如下:
public class GMapDirection {
public final static String MODE_DRIVING = "driving";
public final static String MODE_WALKING = "walking";
public GMapDirection() { }
public Document getDocument(LatLng start, LatLng end, String mode){
String url = "http://maps.googleapis.com/maps/api/directions/xml?"
+ "origin=" + start.latitude + "," + start.longitude
+ "&destination=" + end.latitude + "," + end.longitude
+ "&sensor=false&units=metric&mode=driving";
Log.d("GoogleMapsDirection", url);
try {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(url);
HttpResponse response = httpClient.execute(httpPost, localContext);
InputStream in = response.getEntity().getContent();
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(in);
return doc;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
答案 0 :(得分:0)
我认为你说这句话:
Document doc = md.getDocument(fromPosition, toPosition,
GMapDirection.MODE_DRIVING);
给你一个NullPointerException。这意味着当您执行上述操作时md
为null
。 (这行代码没有其他可能的方法可以抛出异常!)
我可以看到md
的声明:
GMapDirection md;
但是我无法看到你在哪里初始化它。如果您未在任何地方初始化md
,那么这就是null
的原因......这就是您例外的原因。