我想在 Android 上使用谷歌地图开发一个地图应用程序。现在,我想通过触摸或点击地图在地图上添加标记。如何应用触摸事件将标记放在地图上?
问问题
40816 次
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));
}
});
或在Kotlin中:
map.setOnMapClickListener {
allPoints.add(it)
map.clear()
map.addMarker(MarkerOptions().position(it))
}
请注意,您可能希望在列表 ( allPoints
) 中记住所有添加的点,以便稍后重新绘制或删除它们。记住点的更好方法是Marker
为每个点记住一个对象 - 您可以Marker
从函数中获取对象addMarker
,它有一个remove()
可以轻松从地图中删除标记的函数。
于 2013-06-17T12:07:45.507 回答
19
我使用的技术是:
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);
}
});
希望能帮助到你!!!
于 2013-09-12T11:04:57.193 回答
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 回答