2013-07-15 4 views
3

Я хочу показать маркер по своему выбору вместо значка синего цвета по умолчанию. Как я могу изменить то же самое.Установите значок пользовательского маркера в текущем местоположении - Android API v2

В настоящее время я добавляю его вручную в текущем местоположении.

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

ответ

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

Позвольте мне проверить и вернуться к вам. Спасибо –

+0

ему нужно установить пользовательский значок маркера, и это то, что он пытается и не смог выполнить в своем коде. Теперь, несмотря на то, что код, который вы написали, верен, вы не изменили анимацию по умолчанию маркера на пользовательскую, так что в основном ваш код отключен от темы. @ Gaurav, у меня такая же проблема, и BitmapDescriptorFactory не хочет менять свой значок, как только я найду ответ, вы узнаете –

2

Это объясняется в документация:

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

Не забудьте удалить маркер перед добавлением нового, иначе каждый раз, когда вы получите обновление для местоположения пользователя, вы добавите новый маркер на карту.

Поскольку, возможно, вы показываете другие маркеры на карте, держите ссылку на текущий маркер местоположения пользователя, а затем используйте метод remove() перед созданием нового экземпляра.