我的主要活动是片段,其中一个片段是Map Fragment。现在,当我点击那里时,每次它都会慢慢打开。我正在使用fragment的单例实例,但它仍然不能像预期的那样工作。下面是这门课的一个好例子:
public MapsFragment() {
gson = new Gson();
}
public static MapsFragment getInstance() {
if (mInstance == null)
mInstance = new MapsFragment();
return mInstance;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable final Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.fragment_maps, container, false);
mOnSavedinstance = savedInstanceState;
mMapView = (MapView) v.findViewById(R.id.map);
mMapWrapperLayout = (MapWrapperLayout) v.findViewById(R.id.map_relative_layout);
mMapView.getMapAsync(MapsFragment.this);
mMapView.onCreate(savedInstanceState);
mMapView.requestFocus();
MapsInitializer.initialize(getActivity());
return v;
}
@Override
public void onMapReady(GoogleMap googleMap) {
mGoogleMap = googleMap;
// MapWrapperLayout initialization
// 39 - default marker height
// 20 - offset between the default InfoWindow bottom edge and it's content bottom edge
mMapWrapperLayout.init(mGoogleMap, Constants.MARKER_HEIGHT);
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
mGoogleMap.setMyLocationEnabled(false);
}
mGoogleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
setUpMap();
}
private void setUpMap() {
new Thread(new Runnable() {
@Override
public void run() {
final ArrayList<MarkerOptions> markerOptionses = new ArrayList<MarkerOptions>();
int counter = 0;
for (final Places places : Model.getInstance().getPlaces()) {
LatLng location = new LatLng(Double.parseDouble(places.getLat()), Double.parseDouble(places.getLon()));
final MarkerOptions options = new MarkerOptions();
options.snippet(gson.toJson(places));
options.position(location);
options.title(String.valueOf(counter));
markerOptionses.add(options);
counter++;
}
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
for (MarkerOptions markerOptionse : markerOptionses) {
mGoogleMap.addMarker(markerOptionse).setIcon(BitmapDescriptorFactory.fromResource(Model.getInstance().getPlaces()
.get(Integer.parseInt(markerOptionse.getTitle())).getMapsRes(getActivity())));
}
}
});
final CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(45.4654, 9.1859)) // Sets the center of the map to location user
.zoom(Constants.CAMERA_ZOOM_LOCATION) // Sets the zoom
.build(); // Creates a CameraPosition from the builder
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
mGoogleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mGoogleMap.setOnMapClickListener(MapsFragment.this);
// mGoogleMap.setOnInfoWindowClickListener(mInfoListener);
}
});
}
}).start();
}
@Override
public void onResume() {
mMapView.onResume();
super.onResume();
}
@Override
public void onDestroy() {
super.onDestroy();
mGoogleMap.clear();
mMapView.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mMapView.onLowMemory();
}
只有当标记可见时,才能尝试添加标记?我的意思是:首先将相机移动到起始位置,设置zoomLevel,然后添加标记,但前提是它位于可见区域。并在摄像机移动时更新标记。
我在我的嵌套scrollview中有recyckerview,当我的recrenegerview加载时,我对滚动没有问题,它非常平滑,但它的加载速度非常慢(它不是关于我的数据或网络)慢行是 当我从nestedscrollview(根元素的第一个子元素)中移动回收器视图时,它真的很快。这是我的xml 对于这个xml,它阻塞ui 3-4秒并加载它,但是如果我将recyclerview放在nesteds
我是xamarin的新手,我需要在应用程序中放置谷歌地图。 我已经从xamarin下载了示例: https://github.com/xamarin/monodroid-samples/tree/master/MapsAndLocationDemo_v2 经过一些改变,它工作了,这个项目显示地图。 以下是工作的项目的代码: /MainActivity.cs/ /BasicDemo.axml/ /A
我有一个片段,它是Viewpager的一部分,我想在片段中使用Google Map V2。这就是我到目前为止所尝试的, 在我的片段中, 在我的布局子片段信息中。xml,我有, 我现在能看到地图了。但是标记没有显示出来。我认为我的谷歌地图mMapView是空的。请帮我解决这个问题。提前感谢。
我一直在阅读GoogleMapsJSAPI的文档,我无法理解这一点。我想将geojson文件加载到地图,以便它可以显示所有标记,但在文档(如下所示)中,它使用url。除了使用本地文件(使用我自己的geojson)之外,我如何做同样的事情? 这是GoogleAPI文档 这是我的geojson。根据控制台,错误出现在“类型”:“FeatureCollection”(the):) 控制台错误 控制台错误
我有问题加载一个谷歌地图在我的片段。一切都从一个循环器视图适配器开始,该适配器启动活动“ViatGedetAllViewActivity”: 这是我的DetallViewActivity: =2 03-24 02:55:53.881 639-7362/com.example.usuari.MyApplication3 w/ResourcesManager:GetTopleVelResources:
我试图在另一个片段中显示一个谷歌地图片段,但是我不能操纵地图,我已经把我看到的所有步骤都留档了,但是我不能操纵我的地图。 XML代码: 类片段代码: 主要活动类别代码: } 在调用getMapAsync()后,编辑以下堆栈跟踪: 空指针错误: 12-18 19:51:50.056 11265-11265/ar.com.taxiexpress.taxiexpressE/AndroidRuntime: