32

Android で Google マップを使用して地図アプリケーションを開発したいと考えています。ここで、マップをタッチまたはタップしてマップにマーカーを追加したいと思います。タッチ イベントを適用してマップ上にマーカーをドロップするにはどうすればよいですか?

4

3 に答える 3

77

新しいGoogle Map API v2を使用してみてください。

使い方は簡単で、次のようにタップでマーカーを追加できます。

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
    @Override
    public void onMapClick(LatLng point) {
        allPoints.add(point);
        map.clear();
        map.addMarker(new MarkerOptions().position(point));
    }
});

またはコトリンで:

map.setOnMapClickListener {
    allPoints.add(it)
    map.clear()
    map.addMarker(MarkerOptions().position(it))
}

allPoints後で再描画または削除できるように、追加したすべてのポイントをリスト ( ) に記憶しておく必要があることに注意してください。ポイントを覚えるさらに良い方法はMarker、それぞれのオブジェクトを覚えておくことです。関数の結果としてオブジェクトを取得できます。マップからマーカーを簡単に削除するMarker関数があります。addMarkerremove()

于 2013-06-17T12:07:45.507 に答える
5

このコードは成功した実行です 私はそのコードに取り組んでいます このコードはダイナミックドロー用です

このコードは、このコードを使用できる静的または動的の両方の場所でより役立つと思います

double latval = Double.parseDouble(jsonobject.getString("lat"));
double longval = Double.parseDouble(jsonobject.getString("lon"));

mMap.addMarker(new MarkerOptions()
               .position(new LatLng( latval,    longval))
               .title(jsonobject.getString("country"))
               .snippet("4 E. 28TH Street From $15 /per night")
               .rotation((float) -15.0)
               .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))
              );

if (i == 0) {
    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
                                new LatLng(latval, longval), 7));
    mMap.addCircle(new CircleOptions()
                   .center(new LatLng(latval,longval))
                   .radius(5000)
                   .strokeColor(Color.RED)
                   .fillColor(Color.RED)); 
}
于 2014-03-01T11:06:12.027 に答える