17

アプリケーションでユーザーの現在地のカスタムアイコンを使用しており、新しいGoogleマップライブラリにアップグレードする間、このアイコンをこのままにしておきたいと考えています。

Google Maps v1ライブラリを使用して、MyLocationOverlayを拡張し、drawMyLocationメソッドを上書きして、そこにカスタムアイコンを描画しました。

GoogleMapはsetMyLocationEnabledメソッドで現在の場所を有効にしますが、私が知る限り、それをカスタマイズする方法はありません。

誰かがv2でこれを達成する方法を知っていますか?

4

3 に答える 3

14

カスタム アイコンを使用するマップ コンストラクターでマーカーを作成します。

_myLocation = mMap.addMarker(new MarkerOptions()
                      .position(MAP_CENTER)
                      .title("My Location")
                      .icon(BitmapDescriptorFactory.fromResource(R.drawable.mylocation)));

Location Changed Listener を実装し ます。 https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener

プロバイダーが呼び出されたときにマーカーの場所を更新します。

public void onLocationChanged (Location location)
{
    _myLocation.position(location); //May have to convert from location to LatLng
}
于 2012-12-13T06:56:57.540 に答える
5

タイトルやスニペットを追加しないと、マーカーはクリック イベントに影響を与えず、イメージ オーバーレイとして機能することがわかりました。完璧ではありませんが、私のニーズに合っています

private Marker marker = mMap.addMarker(new MarkerOptions()
                    .position( latLng)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));

みんな、ありがとう

于 2013-01-03T02:27:17.770 に答える
0

現在の場所にカスタム アイコンを表示する方法は間違いなくあります。リンクをチェックアウトすると、マップ上のアイコンをカスタマイズするためのより多くのアイデアが得られます。

以下のコードを試してください。

 private static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);
 private Marker melbourne = mMap.addMarker(new MarkerOptions()
                        .position(MELBOURNE)
                        .title("Melbourne")
                        .snippet("Population: 4,137,400")
                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
于 2012-12-21T08:51:44.937 に答える