Android 经度和纬度的双值不传递到googlemap标记
我有一个包含长纬度和经度的数据对象。我从一个片段中的方法传递这些信息,该片段调用父活动方法来显示googlemap 问题是,经度和纬度保持为(0,0)。我已检查对象是否正在设置并获得正确的数字 在片段和对showmap的调用中,这些数字是正确的,但标记始终显示为默认的0,0 我的活动xml中有一个框架布局中的地图,我可以更改其可见性。(我认为这就是问题所在,这是一张空白地图) 我花了好几个小时在这个问题上,现在已经手拉手来到这里 这是本规范的相关部分: 我的片段代码:Android 经度和纬度的双值不传递到googlemap标记,android,google-maps,android-fragments,Android,Google Maps,Android Fragments,我有一个包含长纬度和经度的数据对象。我从一个片段中的方法传递这些信息,该片段调用父活动方法来显示googlemap 问题是,经度和纬度保持为(0,0)。我已检查对象是否正在设置并获得正确的数字 在片段和对showmap的调用中,这些数字是正确的,但标记始终显示为默认的0,0 我的活动xml中有一个框架布局中的地图,我可以更改其可见性。(我认为这就是问题所在,这是一张空白地图) 我花了好几个小时在这个问题上,现在已经手拉手来到这里 这是本规范的相关部分: 我的片段代码: /** * Get la
/**
* Get latitude and longitude from dataobject and pass into
* showMap method of activity.
*/
public void showMap() {
double lat = dataObject.getLatitude();
double long_ = dataObject.getLongitude();
String name = dataObject.getName();
((MyActivity) getActivity()).showMap(lat, long_, name);
}
我的活动代码:
public void showMap(double lat, double _long, String _title) {
GoogleMap googleMap = ((MapFragment) getFragmentManager().
findFragmentById(R.id.map)).getMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, _long)).title(_title));
googleMap.moveCamera(CameraUpdateFactory.zoomTo(5f));
}
我的活动xml:
<RelativeLayout
style="@style/RLayout1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my">
....
<FrameLayout
android:visibility="gone"
...
<fragment
android:id="@+id/map"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
07-09 05:57:37.147 32317-32317/thiscode.databasedemo D/1。行为
纬度=-42.9﹕ 动作长=147.3 07-09 05:57:37.157
32317-32317/thiscode.databasedemo D/2。act lat=-42.9﹕ 动作长=147.3
07-09 05:57:37.167 32317-32317/此代码。数据库演示D/3。行为
纬度=-42.9﹕ 动作长=147.3 07-09 05:57:37.167
32317-32317/thiscode.databasedemo D/4。act lat=-42.9﹕ 动作长=147.3
07-09 05:57:37.167 32317-32317/此代码。数据库演示D/5。行为
纬度=-42.9﹕ 动作长=147.3 07-09 05:57:37.167
32317-32317/thiscode.databasedemo D/6。act lat=-42.9﹕ 动作长=147.3
在确认标记放置正确后,看起来唯一的问题是正确对齐当前视图 这应该做到:
LatLng latlng = new LatLng(lat, _long);
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(latlng).title(_title));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(latlng).zoom(5).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
您可能需要添加以下导入:
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.model.CameraPosition;
您是否记录了这些值?也许在调用showMap之前,请检查您的lat和long_,您从片段调用活动的方式并不推荐,但这可能不是问题所在。记录每个阶段的值,并查看它们精确到零的时间。我会在showMap之前和创建标记之前记录它们。您是否正在尝试在塔斯马尼亚放置标记?在“活动”中的代码运行后,您在视觉上看到了什么?您是否也有在(0,0)处放置标记的默认代码?
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.model.CameraPosition;