2013-04-19 13 views
6

Google Maps Android API v2を使用してマーカーにマーカーを追加すると、マーカーは正しい位置に設定されず、ズームすると移動しません。Google Maps Android API v2でズームするとマーカーが移動する

ズームインすると、あたかもズームに関連する要因で変換されたように、ズームインすると正しい位置に近づきます。

どういうところが間違っていますか?

例でズーミング:

enter image description here enter image description hereenter image description here

断片

public class CenterMapFragment extends Fragment { 

    private GoogleMap mMap; 
    private List<Center> mCenterList; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     return inflater.inflate(R.layout.center_map_fragment, container, false); 
    } 

    @Override 
    public void onActivityCreated (Bundle savedInstanceState){ 

     super.onActivityCreated(savedInstanceState); 

     mMap = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 

     if (mMap != null) { 

      mCenterList = MyApplication.dbHelper.getAllCenter(); 

      for(Center center : mCenterList){ 

       mMap.addMarker(new MarkerOptions().position(new LatLng(center.lat, center.lng)).icon(BitmapDescriptorFactory 
           .fromResource(R.drawable.myicon))); 

      } 
     } 

    } 

} 

レイアウト

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
+0

今あなたがスクリーンショットを追加したとき、問題は確かにアンカーにあると言うことができます –

+0

アイコンに空白がありますか? – Leaudro

+0

同じ問題が解決しましたか? –

答えて

5

カスタムマーカーのためには必要また、マーカー上のポインタポイントがどこにあるかを説明し

MarkerOptions.anchor(float u, float v)

を使用しています。デフォルトでは、このポイントはイメージの中央下部に配置されています。

+0

BitmapDescriptorにはメソッドアンカーがありません。これはMarkerOptionsであり、「マーカーのLatLng位置に配置される画像上の点。デフォルトは画像の中央になります。」位置を変更すべきではありません。 – jul

+0

@jul申し訳ありませんが、これは 'MarkerOptions'のメソッドです。とにかく、これはあなたが探しているものです。 「位置を変更すべきではありません」 - 画像の位置が地図上の実際の緯度と経度に影響しないことを意味します。それは、u * 100%の画像を右に、v * 100%の画像を上に翻訳するだけです。 –

+0

@julまた、あなたの問題のスクリーンショットを提供する場合は多分役に立つかもしれません。 –

0

ウィンドウ情報を表示するには、 "mMap"でsetInfoWindowAdapterを使用するか、マーカーのタイトルセットを取得する必要があります。

アイコンについては、ズームアウトすると動いているように見えますが、アンカーは常に地図上の同じ場所を指しています。使用している画像がGoogleのアイコンパターン(画像のボトムの中央にあるアンカー)に従わない場合は、アンカーを設定できます。そのためにはあなたが使用する必要がありますMarkerOptions' method anchor(u,v)

+0

@julが述べたように、 'anchor'は' MarkerOptions'のメソッドです。私はちょうどそれを忘れました) –

+0

編集、ありがとう:) – Leaudro

関連する問題