【问题标题】:Set Custom Marker Icon at Current Location - Android API v2在当前位置设置自定义标记图标 - Android API v2
【发布时间】:2013-07-13 04:19:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: android google-maps-android-api-2 currentlocation


    【解决方案1】:

    文档中有说明:

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

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

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

    【讨论】:

      【解决方案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);
      }
      

      【讨论】:

      • 让我检查一下并回复你。谢谢
      • 他需要设置一个自定义标记图标,这就是他想要做的,但在他的代码中没有成功。现在尽管您编写的代码是正确的,但您没有将标记的默认动画更改为自定义动画,所以基本上您的代码是题外话。 @ Gaurav,我有同样的问题,BitmapDescriptorFactory 不想更改我的图标,一旦我找到答案会告诉你
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多