3

我想用静止图像地图创建 Android 应用程序,[自定义地图]

在里面。

1)当前位置谷歌地图图像(屏幕短)。[这可能是我们赢得的图纸..]如下所示。

图像点 9.94015,76.273953 9.94015,76.273953 是图像的位置。

在此图像中,蓝色图表示当前位置。

这个怎么做?

墨卡托可以很容易地做到这一点,但我在编程方面很陌生......

我做不到。

如果有任何机构帮助我完成示例项目,我将不胜感激。

4

2 回答 2

2

如果您知道地图坐标(左、右、上下),您可以轻松计算出每个像素代表多少。使用这个和 GPS 纬度,只需在正确的像素处画一个圆圈。

所以对于 X 位置:(这不是代码)

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

所以:

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

你在 GPS X 坐标 11.5 所以:

11.5 - 10 = 1.5
1.5 / 0.005 = 300

所以你需要在 X 轴上的像素 300 处绘制你的圆圈,在你的图像上。

重复 Y 坐标。(使用高度、顶部和底部)

于 2012-07-26T12:06:56.887 回答
0

你试图做谷歌地图标记之类的事情吗?如果是这样,那么你需要使用 ItemizedOverlay。您将在网上的 ItemizedOverlay 上找到示例。只需在 Google 上搜索“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 回答