我想用静止图像地图创建 Android 应用程序,[自定义地图]
在里面。
1)当前位置谷歌地图图像(屏幕短)。[这可能是我们赢得的图纸..]如下所示。
9.94015,76.273953 是图像的位置。
在此图像中,蓝色图表示当前位置。
这个怎么做?
墨卡托可以很容易地做到这一点,但我在编程方面很陌生......
我做不到。
如果有任何机构帮助我完成示例项目,我将不胜感激。
我想用静止图像地图创建 Android 应用程序,[自定义地图]
在里面。
1)当前位置谷歌地图图像(屏幕短)。[这可能是我们赢得的图纸..]如下所示。
9.94015,76.273953 是图像的位置。
在此图像中,蓝色图表示当前位置。
这个怎么做?
墨卡托可以很容易地做到这一点,但我在编程方面很陌生......
我做不到。
如果有任何机构帮助我完成示例项目,我将不胜感激。
如果您知道地图坐标(左、右、上下),您可以轻松计算出每个像素代表多少。使用这个和 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 坐标。(使用高度、顶部和底部)
你试图做谷歌地图标记之类的事情吗?如果是这样,那么你需要使用 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; }