我是Android Developer的初学者。我想使用Google Map开发地图应用程序。 现在,我想在地图上通过触摸或点击在地图上添加标记。我不知道如何应用触摸事件来删除地图上的标记。请告诉我,如果有可能,请给我一些链接或例子。谢谢你,对不起我的英语。
答案 0 :(得分:56)
尝试使用新的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
对象,它有{ {1}}可以轻松地从地图中删除标记的功能。
答案 1 :(得分:15)
我使用的技术是:
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);
}
});
希望它有所帮助!!!
答案 2 :(得分:6)
此代码已成功运行我正在处理该代码,此代码适用于动态绘制
我认为这段代码可以帮助您更好地使用静态或动态两个地方 这段代码
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));
}
答案 3 :(得分:0)
尝试使用这些Tutorial 1和Tutorial 2来了解Google地图
并参考此link to Stack Overflow Question以便在onTouch
上执行此操作