2013-03-01 35 views
0

我想在我的应用程序中使用Google地图 - 从我的应用程序启动Google地图。我创办这个代码(在这个论坛中不同的问):从应用程序启动Google地图 - Android

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”)和缩放是很大。我该如何改变它?有什么方法可以显示两个点并在它们之间路由?

谢谢你的帮助!

回答

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);

+0

感谢您的帮助,但我认为这不是我想要的,因为它会在我的应用程序中创建Map,并且我想用标记启动Google Maps(有很多功能,如导航等)。 – CookieMonssster 2013-03-02 14:01:22

相关问题