Android的GMaps V2 - 获取地图和地图的高度和宽度的中心位置(Android GMa

2019-10-18 02:53发布

我试图让地图的谷歌地图API V2在中心的纬度和经度和获取地图的宽度和长度。

这是我(我开始改变从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;
} 

我怎么能执行相同的功能,mapView.getMapCenter(),mapView.getHeight(),和mapView.getWidth()采用了Android GMaps V2 API?

Answer 1:

获取中心:

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

获取宽度和高度:

如果您要添加的MapFragment到您的Activity使用FragmentTransaction ,你必须提供一定ViewGroup把片段插入。 就像一个LinearLayout或此类。 调用getWidth()getHeight()这样ViewGroup应该得到你想要的东西。

希望能帮助到你。 如果您需要一个例子,让我知道。

编辑-添加例如:

看看在谷歌地图API的Android V2 ,特别是在命名的部分: 添加一个片段 。

在与开始还可以将MapFragment添加到代码的活动的一部分,还有就是一个例子。 在这个例子中, R.id.my_container是完全ViewGroup我写了上面。 在某处你的XML布局Activity ,也有一些是这样的:

<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();

我希望这是可以理解的。



文章来源: Android GMaps v2 - Get location of the center of the map & map height and width