Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌地图&x27;缩放时标记会移动_Android_Google Maps_Coordinates_Google Maps Markers - Fatal编程技术网

Android 谷歌地图&x27;缩放时标记会移动

Android 谷歌地图&x27;缩放时标记会移动,android,google-maps,coordinates,google-maps-markers,Android,Google Maps,Coordinates,Google Maps Markers,我在地图上添加了一个标记,但当我放大时,它会向左移动(最大放大时,它会标记右侧位置),当我缩小时,它会向右移动(最大缩小时,它会标记右侧位置3000公里) 下面是在onCreate之前绘制标记的类(图像为62px w x 70px h): 下面是我用来调用类的代码: latitud = loc.getLatitude(); longitud = loc.getLongitude(); precision = loc.getAccur

我在地图上添加了一个标记,但当我放大时,它会向左移动(最大放大时,它会标记右侧位置),当我缩小时,它会向右移动(最大缩小时,它会标记右侧位置3000公里)

下面是在onCreate之前绘制标记的类(图像为62px w x 70px h):

下面是我用来调用类的代码:

        latitud = loc.getLatitude();
            longitud = loc.getLongitude();
            precision = loc.getAccuracy();

        controlMapa = map.getController();
        point = new GeoPoint((int) (latitud * 1E6), (int) (longitud * 1E6));

        controlMapa.animateTo(point);
        controlMapa.setZoom(17);

        MapOverlay mapOverlay = new MapOverlay();
        List<Overlay> listOfOverlays = map.getOverlays();
        listOfOverlays.clear();
        listOfOverlays.add(mapOverlay);

        map.invalidate();
latitud=loc.getLatitude();
longitud=loc.getlongitud();
精度=loc.getAccurance();
controlMapa=map.getController();
点=新的地质点((int)(纬度*1E6),(int)(经度*1E6));
controlMapa.animateTo(点);
controlMapa.setZoom(17);
MapOverlay MapOverlay=新的MapOverlay();
List listOfOverlays=map.getOverlays();
listOfOverlays.clear();
添加(映射覆盖);
map.invalidate();
有什么问题吗?如何使它们在每次缩放更改时移动到正确的点


提前谢谢你

解决了!我只想补充一句:

canvas.drawBitmap(bmp, screenPts.x - (bmp.getWidth() / 2), screenPts.y - bmp.getHeight(), new Paint());
而不是:

canvas.drawBitmap(bmp, screenPts.x + 50, screenPts.y - 70, null); 
canvas.drawBitmap(bmp, screenPts.x + 50, screenPts.y - 70, null);