web-dev-qa-db-ja.com

AndroidタッチまたはタップでGoogleマップにマーカーを追加

私はAndroid開発者。Googleマップを使用して地図アプリケーションを開発したい。今、地図上のタッチまたはタップを介して地図にマーカーを追加したい。タッチイベントを適用して地図上にマーカーをドロップする方法教えてください、可能であれば、リンクまたは例を教えてください。

21
shiteru

このコードは正常に実行されました。このコードはDynamic Draw

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

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)); 
}
6
user3066085

新しい 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));
    }
});
_

またはKotlin

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

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

59
Sharanu

私が使用した手法は次のとおりです。

googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

                @Override
                public void onMapClick(LatLng point) {

                    MarkerOptions marker = new MarkerOptions().position(
                            new LatLng(point.latitude, point.longitude)).title("New Marker");

                    googleMap.addMarker(marker);

                System.out.println(point.latitude+"---"+ point.longitude);  
                }
            });

それが役に立てば幸い!!!

15

これらを試してください チュートリアル1 および チュートリアル2 Googleマップを理解するために

そしてこれを参照してください Stack Overflow Questionへのリンク onTouchでそれを行うために

0
DeltaCap019