0

我想在我的应用程序中使用 Google 地图 - 从我的应用程序启动 Google 地图。我创建了这段代码(在这个论坛上以不同的方式询问):

String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
FinishActivity.this.startActivity(intent);

它工作得很好——它启动了谷歌地图,但没有任何标签(这个带有“A”的绿色指针)并且缩放非常大。我怎样才能改变它?有什么方法可以显示两个点和它们之间的路线?

谢谢您的帮助!

4

1 回答 1

0
    public class MapRouteActivity extends MapActivity {    
          LinearLayout linearLayout;
   MapView mapView;
     private Road mRoad;    
  @Override
  public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);    
new Thread() {
@Override
public void run() {
 double fromLat = 49.85, fromLon = 24.016667; 
 double toLat = 50.45, toLon = 30.523333;
 String url = RoadProvider
  .getUrl(fromLat, fromLon, toLat, toLon);
 InputStream is = getConnection(url);
 mRoad = RoadProvider.getRoute(is);
 mHandler.sendEmptyMessage(0);
 }
 }.start();
 }

 Handler mHandler = new Handler() {
 public void handleMessage(android.os.Message msg) {
  TextView textView = (TextView) findViewById(R.id.description);
  textView.setText(mRoad.mName + " " + mRoad.mDescription);
  MapOverlay mapOverlay = new MapOverlay(mRoad, mapView);
  List<Overlay> listOfOverlays = mapView.getOverlays();
   listOfOverlays.clear();
   listOfOverlays.add(mapOverlay);
   mapView.invalidate();
    };
    };

 private InputStream getConnection(String url) {
 InputStream is = null;
  try {
  URLConnection conn = new URL(url).openConnection();
  is = conn.getInputStream();
  } catch (MalformedURLException e) {
  e.printStackTrace();
   } catch (IOException e) {
   e.printStackTrace();
   }
  return is;
  }    
   @Override
 protected boolean isRouteDisplayed() {
  return false;
  }
 }

查看完整代码(https://code.google.com/p/j2memaprouteprovider/source/browse/trunk/J2MEMapRouteAndroidEx/src/org/ci/geo/route/android/MapRouteActivity.java

地图的缩放级别

MapController myMC myMapView.getController();

myMC.setZoom(int value);

于 2013-03-01T18:39:02.250 回答