通过触摸或轻触在Android谷歌地图上添加标记

通过触摸或轻触在Android谷歌地图上添加标记,android,google-maps,google-maps-markers,marker,touch-event,Android,Google Maps,Google Maps Markers,Marker,Touch Event,我想在Android上使用Google Map开发一个地图应用程序。 现在,我想通过触摸或轻触地图在地图上添加标记。如何应用触摸事件将标记放置在地图上?尝试使用new 它易于使用,您可以在点击时添加一个标记,如下所示: map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override public void onMapClick(LatLng point) { allPoints.ad

我想在Android上使用Google Map开发一个地图应用程序。 现在,我想通过触摸或轻触地图在地图上添加标记。如何应用触摸事件将标记放置在地图上?

尝试使用new

它易于使用,您可以在点击时添加一个标记,如下所示:

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
对象-你可以通过
addMarker
函数得到
Marker
对象,它有一个
remove()
函数,可以轻松地从地图上移除标记。

我使用的技术是:

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

希望对你有帮助

此代码已成功运行我正在编写此代码此代码用于动态绘制

我认为这段代码在静态和动态两种情况下都能为您提供更多帮助 此代码

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

在这里什么是lstlings.add(point)?“我的意思是,你不承认哪些人反对?”shiteru这不应该是公认的答案。它没有回答原来的问题,但这个答案是:。它可能帮助您解决了问题,但它不包含问题的答案,并且对新访问者具有误导性。这是如何被接受的答案?它根本不能回答问题。这能回答你的问题吗?