所以我一直在使用 Google Maps API 构建一个应用程序,但我遇到了墙..
到目前为止,我得到了 MapView(显然),并且我已经设置了一个 GeoPoint 标记所需路线的最终目的地。
我正在将 GPS 功能添加到代码中,这样我就可以监听我的实际位置并随着我的移动而改变。它仍未实施,但我知道如何实施。我还添加了一个图像用作图钉,以查明最终目的地。
我不知道如何通过路线连接两点。如果有人可以启发我,那就太好了
到目前为止我得到了什么:
package com.example.igestao;
import android.os.Bundle;
import android.annotation.SuppressLint;
import com.example.igestao.R;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.MapController;
import com.google.android.maps.GeoPoint;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import com.google.android.maps.Overlay;
import java.util.List;
@SuppressLint("SetJavaScriptEnabled")
public class Mapa extends MapActivity {
MapView map;
MapController mc;
GeoPoint p;
class MapOverlay extends com.google.android.maps.Overlay {
@Override
public boolean draw(Canvas canvas, MapView map, boolean shadow, long when) {
super.draw(canvas, map, shadow);
//translate the GeoPoint to screen pixels
Point screenPts = new Point();
map.getProjection().toPixels(p, screenPts);
//add pin
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.gpin);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
return true;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
map = (MapView)findViewById(R.id.mvMapa);
map.setBuiltInZoomControls(true);
//map.setSatellite(true);
mc = map.getController();
String coordinates[] = {"38.75795","-9.15324"};
double lat = Double.parseDouble(coordinates[0]);
double lon = Double.parseDouble(coordinates[1]);
p = new GeoPoint( (int)(lat * 1E6), (int)(lon * 1E6) );
mc.animateTo(p);
mc.setZoom(17);
map.invalidate();
//add location marker
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = map.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
map.invalidate();
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}