3

我想显示一个我自己选择的标记来代替默认的蓝色图标。我怎样才能改变相同的。

目前我在当前位置手动添加它。

@Override
            public void onMyLocationChange(Location location) {
                // Creating a LatLng object for the current location
                LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
                // Showing the current location in Google Map
                CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(
                        latLng, 15);
                googleMap.animateCamera(cameraUpdate);
                marker = googleMap.addMarker(new MarkerOptions()
                .position(latLng)
                .title("Current Location(You)")
                .snippet("Current")
                .icon(BitmapDescriptorFactory
                        .fromResource(R.drawable.green_loc_icon))
                        .draggable(true));
            }
        });
4

2 回答 2

1

文档中对此进行了解释:

https://developers.google.com/maps/documentation/android/marker#change_the_default_marker

请记住在添加新标记之前删除标记,否则每次您获得用户位置的更新时,您都会在地图上添加一个新标记。

由于您可能正在地图上显示其他标记,因此请保留对用户当前位置标记的引用,然后在创建新实例之前使用 remove() 方法。

于 2013-08-25T09:11:42.940 回答
-2

像这样更改您的代码,它将正常工作,在 AndroidManifest.xml 中包含以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.example.towntour.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

绘制引脚的代码:

public void onMyLocationChange(Location location) 
{

LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.title("Town Tour");
markerOptions.snippet("We are here");


find_us_map.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 4));
find_us_map.animateCamera(CameraUpdateFactory.zoomTo(4), 2000, null);

markerOptions.position(latlng);
Marker m = find_us_map.addMarker(markerOptions);
}
于 2013-07-15T11:13:20.320 回答