使用android google maps v2添加标记到地图的代码

我有来自database.how的lat和long值,使用android google map api v2显示基于lat和long值的标记。在原始的android google地图中,我们根据概念itemoverlay显示标记。 在v2中,我不知道如何显示标记。

dbAdapter.open(); Cursor points = dbAdapter.clustercall(Btmlft_latitude, toprgt_latitude, Btmlft_longitude, toprgt_longitude, gridsize1); int c = points.getCount(); Log.d("count of points", "" + c); if (points != null) { if (points.moveToFirst()) { do { int latitude = (int) (points.getFloat(points .getColumnIndex("LATITUDE")) * 1E6); int longitude = (int) (points.getFloat(points .getColumnIndex("LONGITUDE")) * 1E6); mapView.addMarker(new MarkerOptions().position( new LatLng(latitude, longitude)).icon( BitmapDescriptorFactory.defaultMarker())); } while (points.moveToNext()); } } points.close(); dbAdapter.close(); 

那是mycode。我从数据库获取lat和long值 ,但是如何根据lat和long值添加标记来映射。

我阅读了android google maps api v2.In,它只提供了静态添加的标记数据

Related of "使用android google maps v2添加标记到地图的代码"

你必须使用GoogleMap.addMarker(MarkerOptions);方法GoogleMap.addMarker(MarkerOptions); 我在我的博客上的教程中对此进行了解释: http : //bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html

在此博客上,您会find更多有关新Maps API的post:

  • 将拖把移动到您/某个位置
  • 创建自定义InfoWindow
  • 将数据或对象关联到标记

使用标记

放置在地图表面特定点的图标。 标记图标是根据设备的屏幕而不是地图的表面绘制的; 即,由于地图旋转,倾斜或缩放,它不一定会改变方向。

标记具有以下属性:

图像上将放置在标记的LatLng位置的点。 默认情况下,图像左侧和图像底部为50%。

位置

标记在地图上的位置的LatLng值。 如果要移动标记,可以随时更改此值。

标题

用户点按标记时在信息窗口中显示的文本字符串。 您可以随时更改此值。

片段

标题下方显示的其他文字。 您可以随时更改此值。

图标

为标记显示的位图。 如果未设置图标,则会显示默认图标。 您可以使用defaultMarker(float)指定默认图标的替代着色。 创建标记后,无法更改图标。

拖动状态

如果要允许用户拖动标记,请将此属性设置为true。 您可以随时更改此值。 默认值为true。

能见度

默认情况下,标记是可见的。 要使标记不可见,请将此属性设置为false。 您可以随时更改此值。

 GoogleMap map = ... // get a map. // Add a marker at San Francisco. Marker marker = map.addMarker(new MarkerOptions() .position(new LatLng(37.7750, 122.4183)) .title("San Francisco") .snippet("Population: 776733")); 

我猜你的问题是你将纬度/经度值乘以1E6而不是将它们除以1E6。 如果您的存储值来自GeoPoints,则可能是您的问题。 否则,你添加标记的方式很好,应该可行。

即传递给新LatLng()的lat / lng值应该看起来像45.4,-95.5 NOT 45400000,-95500000

查看以下代码:

 //mMap is a GoogleMap and point is a GeoPoint this.mMap.addMarker(getMarker(point, drawableId)) 

 public MarkerOptions getMarker(GeoPoint point, int drawableId) { return new MarkerOptions() .position(new LatLng(point.getLatitudeE6() / 1000000.0, point.getLongitudeE6() / 1000000.0)) .icon(BitmapDescriptorFactory.fromResource(drawableId)); }