2013年3月29日金曜日

SupportMapFragment.getMap() でnullが返ってくる

動的にSupportMapFragment を生成して、
レイアウトに追加するとgetMap() でマップが取得できない。


以下のようにすると解決。

            mMapFragment = new SupportMapFragment() {
            @Override
            public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
             mMap = mMapFragment.getMap();
            }
            };

            // Then we add it using a FragmentTransaction.
            FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
            fragmentTransaction.add(R.id.layoutMap, mMapFragment, TAG);
            fragmentTransaction.commit();



//            mMap = mMapFragment.getMap();    // ここだとnullが返ってくる





http://stackoverflow.com/questions/14067889/google-play-service-supportmapfragment-getmap-always-returning-null

GoogleMaps Android V2

はまったとこメモ。

Polygon 登録時は、Handler内でしないと描画されない。


handler.post(new Runnable() {
@Override
public void run() {
    PolygonOptions options = new PolygonOptions();
    options.fillColor(Color.RED);
    options.add(緯度経度のリスト);
    polygon = mMap.addPolygon(options);
}
});


Polygon の表示色などの更新をHandler内でするとPolygonが消えてしまう。


handler.post(new Runnable() {
@Override
public void run() {
     polygon.setFillColor(Color.BLUE);
}
});
→消えちゃう。



polygon.setFillColor(Color.BLUE);
→消えない。