gpt4 book ai didi

java - 在 map 上放置多个标记时获取 Latlng 值的无效双 "n\a"

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:34 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我想在 map 上显示多个标记。(标记来自数据库(dynamodb)并且值都在“STRING”中而不是 double )。将所有“纬度和经度”的 double 转换为字符串后,出现 java.lang.NumberFormatException: Invalid double: "n/a"异常,应用程序崩溃。因为在表格中,一纬度显示为“na”。 (如图所示X and Y are lattitudes and longitudes)

我卡住了,不知道如何处理这个空值。我应该放一些支票还是什么?提前致谢

((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();
}
}
});

}
});

最佳答案

用try catch包围

try {
mMap.addMarker(new MarkerOptions().position(new
LatLng(Double.parseDouble(table.getX()),
Double.parseDouble(table.getY()))));
} catch (NumberFormatException ex){
//do anything when exception occurs
}

关于java - 在 map 上放置多个标记时获取 Latlng 值的无效双 "n\a",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46955517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com