3

静止画マップ「カスタムマップ」でAndroidアプリを作りたい

初期化。

1) 現在地Googleマップ画像(画面短め)。[弊社の当選図面である可能性があります..] 以下に示すとおりです。

画像点 9.94015,76.273953 9.94015,76.273953 は画像の場所です。

この画像では、青いプロットが現在の場所を示しています。

これを行う方法?

メルカトルはこれを非常に簡単に行うことができますが、私はプログラミングに非常に慣れていません...

私はそれをすることはできません。

サンプルプロジェクトで私を助けてくれる人がいれば、感謝します。

4

2 に答える 2

2

マップの座標(左、右、上下)がわかっている場合は、各ピクセルがどれだけ表しているかを簡単に計算できます。これとGPSlatlongを使用して、正しいピクセルに円を描くだけです。

したがって、Xの場所の場合:(これはコードではありません)

Map left = 10 
Map Right = 15
Image Width = 1000 pixels

したがって:

each pixel = (15-10)/ 1000
           = 0.005

あなたはGPSX座標11.5にいます。

11.5 - 10 = 1.5
1.5 / 0.005 = 300

したがって、X軸のピクセル300で、画像上に円を描く必要があります。

Y座標について繰り返します。(高さ、上下を使用)

于 2012-07-26T12:06:56.887 に答える
0

グーグルマップマーカーのようなことをしようとしていますか?その場合は、ItemizedOverlay を使用する必要があります。ネットの ItemizedOverlay で例を見つけることができます。「ItemizedOverlayの例」をグーグルで検索してください。

mapView に円のような形を描きたいだけですか?? もしそうなら、これはあなたがしなければならないことです.. ItemizedOverlayを拡張するクラスを書いてください...... onDrawメソッドでこのコードを使用してください

@Override

public void draw(Canvas canvas, MapView mapView, boolean shadow/*, long when*/) {

    super.draw(canvas, mapView, shadow);

    Paint paint = new Paint();
    // Converts lat/lng-Point to OUR coordinates on the screen.
    android.graphics.Point myScreenCoords = new android.graphics.Point();

    GeoPoint point = new GeoPoint(15340000,75120000);
    mapView.getProjection().toPixels(point, myScreenCoords);
    paint.setStrokeWidth(1);
    paint.setARGB(255, 255, 255, 255);
    paint.setStyle(Paint.Style.STROKE);

    paint.setTextSize(20);
    paint.setColor(Color.RED);
    paint.setStrokeWidth(2);


     canvas.drawText("Here I am...", myScreenCoords.x-10,myScreenCoords.y-48, paint);
    return true;                                                   }
于 2012-07-26T10:25:32.600 に答える