webentwicklung-frage-antwort-db.com.de

Fügen Sie in der Android Google Map eine Markierung hinzu

Ich bin ein Anfänger in Android Developer. Ich möchte eine Kartenanwendung mit Google Map entwickeln. Nun möchte ich der Karte Marker hinzufügen, indem Sie auf oder auf der Karte tippen. Ich weiß nicht, wie Sie ein Berührungsereignis anwenden, um die Markierung auf der Karte abzulegen. Bitte sagen Sie es mir und wenn es möglich ist, geben Sie mir bitte Links oder Beispiele. Vielen Dank und Entschuldigung für mein Englisch.

18
shiteru

Dieser Code ist erfolgreich ausgeführt. Ich arbeite daran, dass dieser Code für Dynamic Draw ist. 

Ich denke, dieser Code hilft Ihnen mehr für statische oder dynamische Orte, die Sie verwenden können dieser Code 

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

Versuchen Sie es mit der neuen Google Map API v2

Es ist einfach zu bedienen und Sie können einen Marker wie folgt hinzufügen:

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

oder in Kotlin:

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

Beachten Sie, dass Sie sich vielleicht alle Ihre hinzugefügten Punkte in einer Liste merken möchten (allPoints), damit Sie sie später erneut zeichnen oder entfernen können. Ein noch besserer Ansatz zum Erinnern an die Punkte wäre das Erinnern eines Marker-Objekts für jeden von ihnen - Sie können das Marker-Objekt als Ergebnis von der addMarker-Funktion erhalten. Es hat eine remove()-Funktion, mit der die Markierung leicht von der Karte entfernt werden kann.

51
Sharanu

Die Technik, die ich verwendete, ist:

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

ich hoffe es hilft!!!

15

Probieren Sie diese Tutorial 1 und Tutorial 2 aus, um Google Maps zu verstehen

und verweisen Sie auf diesen Link auf Stack Overflow Question , um dies bei onTouch zu tun

0
DeltaCap019