2

プログラムで MapView をインスタンス化したいと考えています。オスムドロイドを使用しています。と書いたのですが、マップが表示されない(パラメータ設定の有無にかかわらず)!どうしたの?

    LinearLayout contentLayout = (LinearLayout) findViewById(R.id.contentLayout);

    m_mapView = new MapView(this, 10);

    org.osmdroid.views.MapView.LayoutParams mapParams = new org.osmdroid.views.MapView.LayoutParams(
            org.osmdroid.views.MapView.LayoutParams.MATCH_PARENT,
            org.osmdroid.views.MapView.LayoutParams.MATCH_PARENT,
            null, 0, 0, 0);

    m_mapView.setBuiltInZoomControls(true);

    m_mapView.setMultiTouchControls(false);     

    mapController = this.m_mapView.getController();
    mapController.setZoom(MAP_DEFAULT_ZOOM);
    m_mapView.getController().setCenter( new GeoPoint(MAP_DEFAULT_LATITUDE, MAP_DEFAULT_LONGITUDE));

    m_mapView.invalidate();

    contentLayout.addView(m_mapView,mapParams);
4

1 に答える 1

4

あなたの投稿がプログラムでosmdroidマップを表示する問題を解決してくれたので、私は本当にあなたを助けたいです:私はあなたがしたようにマップビューを線形レイアウトに追加していましたが、あなたがしたようにレイアウトパラメータを含めていませんでした、そしてマップが来ていました空白にします。ありがとうございました!

あなたの問題は、tile sourceを指定しなかったことだと思います。これが私が使用したコードで、マップを正常に描画しました。タイル ソースを追加すること、定数を値に置き換えること、および変数名 mapController を m_mapController に変更することを除いて、それはあなたのものと同じです。メソッド内で定義されており、表示されていないと誰にも思われたくありませんでした。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LinearLayout contentLayout = (LinearLayout) findViewById(R.id.contentLayout);
    m_mapView = new MapView(this, 10);
    m_mapView.setTileSource(TileSourceFactory.MAPNIK);
    org.osmdroid.views.MapView.LayoutParams mapParams = new org.osmdroid.views.MapView.LayoutParams(
            org.osmdroid.views.MapView.LayoutParams.MATCH_PARENT,
            org.osmdroid.views.MapView.LayoutParams.MATCH_PARENT,
            null, 0, 0, 0);
    m_mapView.setBuiltInZoomControls(true);
    m_mapView.setMultiTouchControls(false);     
    m_mapController = this.m_mapView.getController();
    m_mapController.setZoom(15);
    m_mapView.getController().setCenter( new GeoPoint(51496994, -134733));
    m_mapView.invalidate();
    contentLayout.addView(m_mapView, mapParams);
}

osmdroid を使い始めたときにこの便利なページを使用しました。独自の変更を行って雑草を離れているときに、適切な健全性チェックを行います。

これがお役に立てば幸いです...あなたが私に提供してくれたヒントに再び感謝します!

于 2013-04-24T13:44:37.170 に答える