2013-11-22 21 views
2

我已经创建了一个应用程序。我在GoogleMap上随机生成latitudelongitude并将该值传递到下一页......即CameraPage。但是,在CameraPage销不正确的下降在地图上。我已经实现了camera-zoom和其他方法,但是,仍然没有工作..Android - 相机变焦不起作用

请检查屏幕截图..

MapPage

enter image description here

CameraPage

enter image description here

有没有任何解决方案来放大相机上的引脚而无需外部变焦控制?

时CameraPage被加载应该是默认放大..

编辑::

代码::

ArrayList<Point> props = new ArrayList<Point>(); 
      props.add(new Point(a_latitude, a_longitude, a_username)); 
      props.add(new Point(b_latitude, b_longitude, b_username)); 
      props.add(new Point(c_latitude, c_longitude, c_username)); 
      props.add(new Point(d_latitude, d_longitude, d_username)); 
      props.add(new Point(e_latitude, e_longitude, e_username)); 
      props.add(new Point(f_latitude, f_longitude, f_username)); 
      props.add(new Point(g_latitude, g_longitude, g_username)); 
      props.add(new Point(h_latitude, h_longitude, h_username)); 
      props.add(new Point(i_latitude, i_longitude, i_username)); 
      props.add(new Point(j_latitude, j_longitude, j_username)); 


    mPaint.setColor(Color.BLACK); 
    mPaint.setTextSize(30); 
    mPaint.setStrokeWidth(DpiUtils.getPxFromDpi(getContext(), 2)); 
    mPaint.setAntiAlias(true);  


    mSpots = new Bitmap[props.size()]; 
    for (int i = 0; i < mSpots.length; i++) 
     mSpots[i] = BitmapFactory.decodeResource(context.getResources(), R.drawable.google_pin_new); 

点类::

public class Point { 
public double longitude = 0f; 
public double latitude = 0f; 
public String description; 


public Point(double d, double e, String string) { 
    // TODO Auto-generated constructor stub 
    this.latitude = d; 
    this.longitude = e; 
    this.description = string; 

    } 

} 
+0

你是什么意思?我认为地图在屏幕截图中的缩放级别与用于将图钉放在相机上的缩放级别不同。 –

+0

不,在屏幕上都是一样的..即在地图屏幕和相机屏幕上.. –

+0

你可以显示一些代码吗?具体而言,我们需要用于将标记放在相机上的代码。你如何决定他们的屏幕坐标。 –

回答

5

In而不是用经度和纬度来画出你的观点。

使用功能toScreenLocation。例如,下面一行将返回一个Point,表示您应该绘制位置标记的坐标。

android.graphics.Point p = mMap.getProjection().toScreenLocation(location); 
props.add(new Point(p.X, p.Y, a_username));