android - 如何在点击位置时在谷歌地图上固定位置

标签 android google-maps bitmap

我第一次尝试谷歌地图,我从 From this site 得到了一些教程。

我们可以固定一个位置,但点击时不会显示固定特定位置,代码如下

public class GoogleActivity extends MapActivity 
{    
    MapView mapView; 
    MapController mc;
    GeoPoint p;

class MapOverlay extends com.google.android.maps.Overlay
{


    @Override
    public boolean draw(Canvas canvas, MapView mapView, 
    boolean shadow, long when) 
    {
        super.draw(canvas, mapView, shadow);                   

        //---translate the GeoPoint to screen pixels---
        Point screenPts = new Point();
        mapView.getProjection().toPixels(p, screenPts);

        //---add the marker---
        Bitmap bmp = BitmapFactory.decodeResource(
            getResources(), R.drawable.ic_launcher);            
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);         
        return true;
    }
} 

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mapView = (MapView) findViewById(R.id.mapView);
    LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
    View zoomView = mapView.getZoomControls(); 



    zoomLayout.addView(zoomView, 
        new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, 
            LayoutParams.WRAP_CONTENT)); 
    mapView.displayZoomControls(true);

    mc = mapView.getController();
    String coordinates[] = {"1.352566007", "103.78921587"};
    double lat = Double.parseDouble(coordinates[0]);
    double lng = Double.parseDouble(coordinates[1]);

    p = new GeoPoint(
        (int) (lat * 1E6), 
        (int) (lng * 1E6));

    mc.animateTo(p);
    mc.setZoom(17); 
    mapView.invalidate();


     //---Add a location marker---
     MapOverlay mapOverlay = new MapOverlay();
     List<Overlay> listOfOverlays = mapView.getOverlays();
     listOfOverlays.clear();
     listOfOverlays.add(mapOverlay);        

     mapView.invalidate();
}

@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}
}

现在我需要的是,当我选择某个特定位置时,我想固定一个位置。如何在谷歌地图中实现点击事件

最佳答案

MapOverlay 类有一个 onTap()您可以覆盖的方法。当您在 map 上单击选项卡时,它将被调用,并且 GeoPoint 对象将作为描述录制位置的参数传递。

关于android - 如何在点击位置时在谷歌地图上固定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554409/

相关文章:

java - 拖放流离失所

javascript - Google map /路线的 3D 表示?

C++ Direct 2D 如何调整 ID2D1Bitmap 的大小

android - Kotlin 位图工厂 IllegalStateException

android - onclick 按钮替换按钮位置

java - 地理编码代码不起作用 - Googlemaps

android - Canvas 和位图

html - 除非定义固定高度,否则 Google map 不会显示

javascript - 谷歌地图可以设置为慢速恒平移吗?就像一场全局革命?

java - 从 Android L 中的 ImageView 获取位图