लोड करते हुए डिवाइस पर लोड हो रहा है गूगल मानचित्र मैं स्क्रीन sometimes.it नीचे प्राप्त कर रहा जैसा कि नीचे दिखाया दूसरा लोड पर आता है। अन्यथा यह रूट के साथ सामान्य Google मानचित्र के रूप में पूरी तरह से आता है, मैं SupportmapFragment का उपयोग कर रहा हूं और googleMap ऑब्जेक्ट को प्राप्त कर रहा हूं।अस्पष्ट आकाश स्क्रीन प्राप्त करते हुए गूगल मानचित्र
supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map_view_fragment);
नीचे गतिविधि/टुकड़ा
public static void drawRouteIntoMap(final List<? extends MapHelper> position, final GoogleMap googleMap) {
/*List<MapHelper> position = new ArrayList<MapHelper>();
for (int i = lastPosition; i < maps.size(); i++) {
position.add(maps.get(i));
}*/
final LatLngBounds.Builder mapBounds = new LatLngBounds.Builder();
if (position.size() > 0 && Validator.isNotNull(googleMap)) {
googleMap.clear();
List<PolylineOptions> polylineOptionses = new ArrayList<PolylineOptions>();
PolylineOptions option = null;
Boolean lastPause = null;
for (MapHelper map : position) {
if (map.isPause()) {
if (Validator.isNull(lastPause) || !lastPause) {
option = new PolylineOptions().width(5).color(Color.rgb(255, 0, 155)).geodesic(true);
polylineOptionses.add(option);
}
mapBounds.include(new LatLng(map.getLatitude(),map.getLongitude()));
option.add(new LatLng(map.getLatitude(), map.getLongitude()));
} else {
if (Validator.isNull(lastPause) || lastPause) {
option = new PolylineOptions().width(5).color(Color.rgb(0, 179, 253)).geodesic(true);
polylineOptionses.add(option);
}
mapBounds.include(new LatLng(map.getLatitude(),map.getLongitude()));
option.add(new LatLng(map.getLatitude(), map.getLongitude()));
}
lastPause = map.isPause();
}
for (PolylineOptions options : polylineOptionses) {
googleMap.addPolyline(options);
}
if(Validator.isNotNull(option)){
//List<LatLng> points = option.getPoints();
googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
LatLng startPoint = new LatLng(position.get(0).getLatitude(), position.get(0).getLongitude());
googleMap.addMarker(new MarkerOptions().position(startPoint).title("start").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
mapBounds.include(startPoint);
LatLng endPoint = new LatLng(position.get(position.size() - 1).getLatitude(), position.get(position.size() - 1).getLongitude());
mapBounds.include(endPoint);
googleMap.addMarker(new MarkerOptions().position(endPoint).title("finish").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
googleMap.setPadding(15, 205, 10, 110);
googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(mapBounds.build(), 0));
//googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(mapBounds.build(), 10));
googleMap.moveCamera(CameraUpdateFactory.zoomOut());
}
});
}
}
}
supportMapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
if (Validator.isNotNull(googleMap)) {
googleMap.setMyLocationEnabled(false);
googleMap.clear();
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
if (activity.preferences.isSaveScreen()) {
facebook.setChecked(false);
twitter.setChecked(false);
activity.replaceFragment(new FullMapFragment(), null);
}
if (!activity.preferences.isSaveScreen()) {
activity.preferences.setHistoryScreen(true);
activity.replaceFragment(new FullMapFragment(), null);
}
}
});
if (gps) {
nonGpsSummary.setVisibility(View.GONE);
List<HistoryMap> historyMaps = new ArrayList<HistoryMap>();
if (Validator.isNotNull(activity.preferences.getUserHistory().getHistoryMaps())) {
historyMaps.addAll(Arrays.asList(activity.preferences.getUserHistory().getHistoryMaps()));
}
if (historyMaps.size() > 0) {
if (Validator.isNotNull(googleMap)) {
drawRouteIntoMap(historyMaps, googleMap);
}
} else {
mapFrame.setVisibility(View.GONE);
}
} else {
gpsSummary.setVisibility(View.GONE);
}
}
}
});
इस सवाल zoom over specific route google map साथ संबंध में है में नक्शा प्रदर्शित करने के लिए कोड है। इसका उपयोग करके मुझे मैपबाउंड के साथ उचित मार्ग मिलता है लेकिन मुझे यह नहीं मिल रहा है कि यह स्क्रीन क्यों प्रदर्शित हो रही है।
मैं प्राप्त नहीं कर रहा हूँ cordinates 0.0 मैं डिबग कि, api कुंजी भी उचित है।
के बजाय
CameraUpdateFactory.newLatLngBounds(mapBounds.build(), 0)
कहाँ से 'drawRouteIntoMap' बुला रहे हैं पर एक गद्दी स्थापित करने के लिए है? आप वहां 'GoogleMap.OnMapLoadedCallback' क्यों सेट कर रहे हैं? – antonio@antonio नक्शे के बाद पूरी तरह से लोड हो गया मैं वहां मार्ग प्रदर्शित करता हूं। –
लेकिन नक्शा पूरी तरह से आप से पहले लोड किया जा सकता अपने 'GoogleMap.OnMapLoadedCallback' सेट और फिर यह कोई प्रभाव नहीं पड़ेगा। आप सामान है कि आप सही अंदर अपने 'onMapLoaded' विधि में क्या कर रही है की कोशिश की है' अगर (Validator.isNotNull (विकल्प)) { ' – antonio