我想在android程序中显示两个城市之间的里程,为此我编写了以下代码:
package com.example.distancebcities;
import java.io.IOException;
import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends MapActivity {
//extending the MapActivity here
Geocoder geocoder = null;
MapView mapView = null;
@Override
//location display
protected boolean isLocationDisplayed() {
return false;
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.geoMap);
mapView.setBuiltInZoomControls(true);
// lat/long of Jacksonville, FL
int lat = (int) (30.334954 * 1000000);
int lng = (int) (-81.5625 * 1000000);
GeoPoint pt = new GeoPoint(lat, lng);
mapView.getController().setZoom(10);
mapView.getController().setCenter(pt);
geocoder = new Geocoder(this);
}
public void doClick(View arg0) {
try {
EditText loc = (EditText) findViewById(R.id.location);
//getting the dittext id
String locationName = loc.getText().toString();
List<Address> addressList = geocoder.getFromLocationName(locationName, 5);
if (addressList != null && addressList.size() > 0) {
int lat = (int) (addressList.get(0).getLatitude() * 1000000);
int lng = (int) (addressList.get(0).getLongitude() * 1000000);
//getting the lat and long postions of the cities
GeoPoint pt = new GeoPoint(lat, lng);
mapView.getController().setZoom(15);
mapView.getController().setCenter(pt);
//zooming and display the place of the edit text entered value .
}
catch (IOException e){
e.printStackTrace();
}
}
}
我得到了这些地方,但现在我想显示两个城市之间的距离。
我该如何继续这个程序,或者有没有其他方法可以实现这个?请向我发送任何有用的链接,以便我继续前进。