【问题标题】:Android GoogleMap -.scrollby does not work properlyAndroid GoogleMap -.scrollby 无法正常工作
【发布时间】:2013-09-14 23:59:03
【问题描述】:

我对 Android 比较陌生(使用 Eclipse),我正在尝试使用一个使用 googlemap 的应用程序。我在我的移动应用中使用了地图,并在该位置放置了一个带有标题的标记。

我的问题是我只有一小块区域可供地图显示,当位置居中时,标题会被剪掉一些。我只想稍微滚动(平移)地图,以便清楚地看到标题并更加居中。但我似乎无法让它发挥作用。这是我目前所拥有的:

public class Single extends FragmentActivity {

private GoogleMap mMap;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.single); 
}

 private void setUpMapIfNeeded() {

        if (mMap == null) {
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();

            if (mMap != null) {
                setUpMap();
            }
        }
    }

 private void setUpMap() {

     LatLng coordinate = new LatLng(myLatitude, myLongitude);
     CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 10);
     mMap.animateCamera(yourLocation);

     mMap.addMarker(new MarkerOptions().position(new LatLng(myLatitude, myLongitude)).title("This is a test title").showInfoWindow();

 } }

上面的代码工作正常,但给了我以下地图:

http://www.webonepro.com/2.png

请注意,标题几乎被截断了一点。我真正想做的是稍微平移/滚动地图以获得以下内容:

http://www.webonepro.com/1.png

如果我尝试添加以下代码,它会将地图移动到不再显示标记的默认区域,我相信是非洲:

mMap.animateCamera(CameraUpdateFactory.scrollBy(0, 10));

有谁知道我做错了什么?我不应该可以上下调整一下地图吗?

谢谢,

汤姆

【问题讨论】:

    标签: android eclipse google-maps


    【解决方案1】:

    当你一个接一个地调用animateCamera时,只有最后一个会生效。

    您可以使用moveCamera 进行第一次相机更新调用(甚至两者都使用)。

    另一种方法是使用Projection 转换为Point,为y 添加一些偏移量并转换回LatLng

    【讨论】:

    • 我继续将两个调用都更改为 moveCamera。虽然地图不再以默认为中心,但它实际上仍然没有滚动地图。我什至尝试将 scrollby 中 Y 值的像素量增加到更大的数字(即 1000、9999)。以 Projection 方式执行此操作的语法是什么?还有其他建议吗?
    • @Tom 所以当有两个moveCameras 时,它仍然看起来像webonepro.com/2.png?第一次打电话给yourLocation,第二次打电话给scrollBy?在这种情况下尝试将scrollBy 更改为animateCamera
    • 是的@MaciejGórski,它仍然像webonepro.com/2.png。尝试将“scrollby”更改为“animateCamera”,但也没有效果。这就是我现在拥有的,但它仍然不起作用:LatLng coordinate = new LatLng(latitude, longitude); CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 10); mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("This is a test.")).showInfoWindow(); mMap.moveCamera(yourLocation); mMap.animateCamera(CameraUpdateFactory.scrollBy(0, 100));
    • 我注意到一件奇怪的事情,如果我添加一个按钮,然后将代码 mMap.animateCamera(CameraUpdateFactory.scrollBy(0, 100)); 放入其中,当我按下按钮时,地图就会正确滚动。但是为什么它在我的正常代码中不起作用,我应该怎么做才能修复它?
    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 2017-03-10
    • 2012-09-13
    • 2012-03-24
    • 2012-11-03
    • 2013-11-24
    • 1970-01-01
    • 2014-09-17
    相关资源
    最近更新 更多