0

私はアンドロイド分野の初心者です。Network Provider から緯度と経度の値を取得し、それをローカル サーバーに保存するAndroid App1を作成しました(LAMP)

MYSQL DBNetwork Provider を使用して取得された値 (lat と lon) を持つ 3 つの列 (lat、lon、id) を持つテーブルも作成しました。現在、テーブルには複数の10値があります。

Android App2で PHP スクリプトを使用しJSONてこれらの値を取得するためのオブジェクトを作成しました。これらはすべて正常に機能します。また、マーカーを使用して地図上に緯度と経度の値をプロットする作成も 行いました。MYSQL DBMapActivity

私が今しなければならないことは、それらのマーカーを結合して、Google マップにパスを描画することです。どうやってするの。助けてください

4

2 に答える 2

3

これを試して。

String uri = "http://maps.google.com/maps?saddr=" + currentLatitude+","+currentLongitude+"&daddr="+fixedLatitude+","+fixedLongitude;
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);

これはあなたを助けるかもしれません

于 2012-12-27T07:16:03.940 に答える
1

これを試して、Googleマップでパスを描画します

public class Location extends MapActivity {
MapView mapView;
public static ArrayList<String> paramLat = new ArrayList<String>();
public static ArrayList<String> paramLong = new ArrayList<String>();
private List<Overlay> mapOverlays;
public List<GeoPoint> geopoints = new ArrayList<GeoPoint>();
public void onCreate(Bundle savedInstanceState) {

//your code to display location

for(int i=0;i<paramLat.size();i++)
        {
            lat = Double.parseDouble(paramLat.get(i)); 
            lon = Double.parseDouble(paramLong.get(i));
            geoPoint = new GeoPoint((int)(lat * 1E6), (int)(lon *1E6));
            geopoints.add(geoPoint);
           }

mapOverlays = mapView.getOverlays();
mapOverlays.add(new MyOverlay());
}

class MyOverlay extends Overlay{

    public MyOverlay(){

    }   

 public void draw(Canvas canvas, MapView mapv, boolean shadow){
        super.draw(canvas, mapv, shadow);

        int loopcount = geopoints.size() - 1; 
        Paint   mPaint = new Paint();
        mPaint.setDither(true);
        mPaint.setColor(Color.BLUE);
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setStrokeWidth(2);
        for (int i = 0; i < loopcount; i++) 
        {
            GeoPoint pp1 = (GeoPoint) geopoints.get(i);
            GeoPoint pp2 = (GeoPoint) geopoints.get(i + 1);
            Point p1 = new Point();
            Point p2 = new Point();
            Path path = new Path();

            projection.toPixels(pp1, p1);
            projection.toPixels(pp2, p2);

            path.moveTo(p2.x, p2.y);
            path.lineTo(p1.x,p1.y);
            canvas.drawPath(path, mPaint);
        }
    }
   }  //end of MyOverlay class
}  //end of Location class
于 2012-12-27T07:39:11.237 に答える