0

これは私のコードです(以下)、

ジオポイントフォームコードを削除し、サーバーのsqliteから読み取る方法は?1000を超えるジオポイントがあるため、コードが長すぎます。

すでに日付ベースを作成しましたが、サーバーから接続する方法がわかりません。

public class SimpleMap extends MapActivity {

    private MapView mapView;

    List<Overlay> mapOverlays;
    Drawable drawable;
    Drawable drawable2;
    MyLocationOverlay myLocationOverlay;
    SimpleItemizedOverlay itemizedOverlay2;
    SimpleItemizedOverlay itemizedOverlay;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
        GeoPoint hr = new GeoPoint((int) (44.715513 * 1E6),
                (int) (16.545410 * 1E6));
        mapView.getController().animateTo(hr);
        mapView.getController().setZoom(7);

        mapOverlays = mapView.getOverlays();

        myLocationOverlay = new FixedMyLocationOverlay(this, mapView);
        mapView.getOverlays().add(myLocationOverlay);
        mapView.postInvalidate();

        drawable = getResources().getDrawable(R.drawable.icon2);
        itemizedOverlay2 = new SimpleItemizedOverlay(drawable, mapView);
        itemizedOverlay2.setShowClose(true);
        itemizedOverlay2.setShowDisclosure(false);
        itemizedOverlay2.setSnapToCenter(false);

        GeoPoint point1000 = new GeoPoint((int) (34.109798 * 1E6),
                (int) (25.242270 * 1E6));
        OverlayItem overlayItem1000 = new OverlayItem(point1000,
                "point1000", "some text");
        itemizedOverlay2.addOverlay(overlayItem1000);

        mapOverlays.add(itemizedOverlay2);
4

1 に答える 1

1

モバイルデバイスからリモートデータベースに接続することは、パフォーマンス、セキュリティ、アプリの拡張性など、さまざまな理由からお勧めできません。SOをすばやく検索すると、同じ結論に達する多くの結果が得られます。

サーバーを制御できる場合は、アプリがジオポイントを取得するために使用できる単純なWebサービスを設定するのが最適です。次に、データベースに接続するのではなく、アプリがURLに接続して(たとえば、を使用してHttpUrlConnection)、位置データをダウンロードします。サーバーは、カンマ区切りのリストなど、アプリが解析しやすい形式でそれらを送信する必要があります。

-82.8883,25.92834
2.5057,-60.90711
...

ポイントのペアごとに、を作成しGeoPoint、それをでラップしてOverlayItemから、に追加しますOverlay

于 2012-10-17T17:00:43.080 に答える