2012-10-17 75 views
0

這是我的代碼(波紋管),安卓地理位置應用程序與遠程SQLite

如何刪除geopoints窗體代碼,並從服務器讀取sqlite?我有超過1000個地點,所以我的代碼太長了。

我已經創建了datebase allready,但不知道如何從服務器連接它。

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); 
+0

您能更具體地瞭解您想要做什麼嗎? SQLite旨在用於本地,而不是通過網絡連接。如果您只需要從服務器下載地址,那麼您需要以應用可以解析的格式將它們存儲在服務器上。該應用程序可以將它們插入到本地數據庫中。 – acj

+0

好的,tnx重播。我不關心使用哪個數據庫。我只需要使用geopoints表單服務器 –

回答

1

從移動設備連接到遠程數據庫是一些原因一個壞主意,如performance, security, and app extensibility。對SO進行快速搜索會得出許多結果,得出相同的結論。

如果您可以控制服務器,最好設置一個簡單的Web服務,您的應用程序可以使用該服務來檢索地理點。然後,應用程序將連接到一個URL(例如,使用HttpUrlConnection)並下載位置數據,而不是連接到數據庫。服務器將需要向他們發送的格式,方便您的應用程序來解析,如逗號分隔的列表:

-82.8883,25.92834 
2.5057,-60.90711 
... 

對於每對點,創建一個GeoPoint,包裝在一個OverlayItem,然後將其添加到您的Overlay