Ich entwickle eine App, in der ich mehrere Markierungen auf der Karte anzeigen möchte. (Marker kommen aus Datenbank (dynamodb) und Werte sind alle in "STRING" nicht doppelt). Nach der Konvertierung von Double in String aller "Lattitude and Longitudes" bekomme ich eine Ausnahme von java.lang.NumberFormatException: Invalid double: "n/a" und App stürzt ab. Denn in der Tabelle zeigt ein lat lange "na". (wie Sie in Bild sehen können)Ungültiges doppeltes "n a" für Latlng-Werte beim Platzieren mehrerer Markierungen auf Karte erhalten
Ich blieb stecken und weiß nicht, was ich mit diesem leeren Wert tun soll. Soll ich etwas überprüfen oder was? Vielen Dank im Voraus
((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
final LatLng israel = new LatLng(31.0461, 34.8516);
googleMap.addMarker(new MarkerOptions().position(israel).title("israel"));
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
CameraPosition camPos = new CameraPosition.Builder().target(new LatLng(31.0461, 34.8516)).zoom(8).tilt(70).build();
CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
googleMap.animateCamera(camUpd3);
mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
DDBExecutor.getInstance().getAllSettlements(mContext, new DDBExecutor.OnResponseListener() {
@Override
public void onResponse(Object result, String message) {
List<SettlementsTable> lstSettlements = new ArrayList<>();
lstSettlements.addAll((List<SettlementsTable>) result);
for (SettlementsTable table : lstSettlements){
mMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(table.getX()), Double.parseDouble(table.getY()))));
}
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(israel);
LatLngBounds bounds = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 200);
mMap.moveCamera(cu);
mMap.animateCamera(CameraUpdateFactory.zoomTo(8), 2000, null);
try {
KmlLayer kmlLayer = new KmlLayer(googleMap, R.raw.settlements, getApplicationContext());
kmlLayer.addLayerToMap();
KmlLayer kmlLayer1 = new KmlLayer(googleMap, R.raw.outposts, getApplicationContext());
kmlLayer1.addLayerToMap();
KmlLayer kmlLayer2 = new KmlLayer(googleMap, R.raw.settlements_in_pal_nghbrhd, getApplicationContext());
kmlLayer2.addLayerToMap();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
});
Was zu tun ist, hängt von Ihrer App ab. Ich meine, Sie müssen Rechenschaft ablegen, aber möchten Sie den Benutzer bitten, die Daten zu korrigieren? Diesen Punkt nicht zeigen? Etwas anderes? THat ist etwas, das Sie entscheiden müssen. –
in diesem Fall ... nur dieser bestimmte Latlng sollte nicht angezeigt werden, aber der Rest des Wertes sollte angezeigt werden. Ich meine einfach das "n \ a" überspringen und Rest des Ergebnisses zeigen. @GabeSchan –
In diesem Fall wäre es ausreichend, NumberFormatException abzufangen und zum nächsten Datenpunkt zu wechseln. –