Android Maps v2 - 获取地图中心的位置&地图高度和宽度

时间:2013-05-02 22:08:20

标签: java android google-maps-android-api-2 google-maps-api-2 android-maps-v2

我正试图在Google Maps V2 API&amp ;;中获取地图中心的纬度和经度。得到地图的宽度和长度。

这是我的旧代码(来自我开始修改的GMaps v1):

import com.google.android.gms.maps.GoogleMap;

private GoogleMap mGoogleMapView;

public LatLng getMapCenter()
{
  if( mGoogleMapView != null )
  {
     return mGoogleMapView.getMapCenter();
  }
  /*if( mOpenStreetMapView != null )
  {
     return convertOSMGeoPoint( mOpenStreetMapView.getMapCenter() );
  }*/
  return null;
}

public int getHeight()
{
  if( mGoogleMapView != null )
  {
     return mGoogleMapView.getHeight();
  }      
  /*if( mOpenStreetMapView != null )
  {
     return mOpenStreetMapView.getHeight();
  }*/
  return 0;
}

public int getWidth()
{
  if( mGoogleMapView != null )
  {
     return mGoogleMapView.getWidth();
  }
  /*else if( mOpenStreetMapView != null )
  {
     return mOpenStreetMapView.getWidth();
  }*/
  return 0;
} 

如何使用Android GMaps V2 API执行与mapView.getMapCenter(),mapView.getHeight()和mapView.getWidth()相同的功能?

1 个答案:

答案 0 :(得分:10)

获得中心:

GoogleMap map;
LatLng center = map.getCameraPosition().target;

获取宽度和高度:

如果您使用MapFragmentActivity添加到FragmentTransaction,则必须提供一些ViewGroup来放入片段。像LinearLayout之类的东西。在此类getWidth()上拨打getHeight()ViewGroup可以获得您想要的内容。

希望它有所帮助。如果您需要一个例子,请告诉我。

编辑 - 添加示例:

查看Google Maps Android API v2,特别是在名为Add a Fragment的部分。

在以开头的部分下你还可以将一个MapFragment添加到代码中的一个Activity,这里有一个例子。在该示例中,R.id.my_container正好是我上面写的ViewGroup。在Activity的XML布局中,有类似的内容:

<LinearLayout
    android:id="@+id/my_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

FragmentTransaction所做的是MapFragment需要LinearLayout并将其作为此LinearLayout的子项。唯一的孩子。因此,地图的宽度和高度与Activity相同。

然后,您可以轻松地在LinearLayout myContainer = (LinearLayout) findViewById(R.id.my_container); int mapHeight = myContainer.getHeight(); int mapWidth = myContainer.getWidth(); 中获得所需内容。

{{1}}

我希望这是可以理解的。