如何在谷歌地图图片中标记当前位置

3

我想创建一个带有静态图片地图(自定义地图)的Android应用程序。

1)当前位置谷歌地图图像(屏幕快照)。如下所示。[它可能是我们自己的绘图...]

Image point 9.94015,76.273953 9.94015,76.273953是该图像的位置。

在这个图像中,蓝色的标记表示当前位置。

如何实现?

Mercator可以很容易地完成此操作,但我对编程非常陌生...

我做不到。

如果有人能够提供一个示例项目来帮助我,我将不胜感激。


你想把蓝点改成其他图片吗? - Archie.bpgc
@ Archie。这不是问题..只需标记当前位置即可。 - jaleel
不确定这是否有帮助,但如果您只想要一张图片而不是地图,则 Google 静态地图 API 非常有用,可以通过 URL 拉取图像并在其上放置标记:https://developers.google.com/maps/documentation/imageapis/ - Mano Marks
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坐标,请重复相同步骤。(使用高度、顶部和底部)


0

你是想做类似谷歌地图标记的功能吗?如果是,那么你需要使用ItemizedOverlay。你可以在网上找到ItemizedOverlay的例子。只需在Google上搜索“ItemizedOverlay示例”即可。

你只是想在地图视图上绘制一个圆形吗?如果是这样,你需要编写一个扩展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;                                                   }

在MapView上只有ItemizedOverlay叠加层吗?在这种情况下,我们正在使用当前位置的.png图像。我们想在图像上绘制当前位置的一个点(仅标记)。谢谢回复。 - jaleel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接