我正试图在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()相同的功能?
答案 0 :(得分:10)
获得中心:
GoogleMap map;
LatLng center = map.getCameraPosition().target;
获取宽度和高度:
如果您使用MapFragment
将Activity
添加到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}}
我希望这是可以理解的。