将String转换为Double以在LatLng/Google Maps中使用

use*_*853 1 string android google-maps-android-api-2

我需要将String值转换为LatLng值,以便在Android应用中的GoogleMaps片段中使用.字符串值可能以"-45.654765,65.432892"的形式出现.

我尝试了两种不同的方法,但都导致了错误.首先,我尝试使用split()并将结果放入String [],然后使用parseDouble()访问每个,如下所示:

String[] geo = GEO.split(",");
double lati = Double.parseDouble(geo[0]);
double lngi = Double.parseDouble(geo[1]);
LOCATION = new LatLng(lati, lngi);
Run Code Online (Sandbox Code Playgroud)

这产生了一个ArrayIndexOutOfBoundsExceptiondouble lati = Double.parseDouble(geo[0]);.我不确定为什么.

我也尝试过使用StringTokenizer,如下所示:

StringTokenizer tokens = new StringTokenizer(GEO, ",");
String lat = tokens.nextToken();
String lng = tokens.nextToken();
double lati = Double.parseDouble(lat);
double lngi = Double.parseDouble(lng);
LOCATION = new LatLng(lati, lngi);
Run Code Online (Sandbox Code Playgroud)

这引出了一个NoSuchElementException指向String lng = tokens.nextToken();.

在这两种情况下,我正在处理的字符串是GEO,public static final并通过intent从另一个活动传递,目前它只是硬编码的"43.75,-70.15".

LOCATIONpublic static和是一个初始化为的LatLng变量null.

谁能指出我正确的方向?这看起来很简单,所以我比平时更加​​困惑......

编辑:

数据源自通过意图传递的不同活动.接收意图的活动GEO定义如下:

public static final String GEO = "geo";
Run Code Online (Sandbox Code Playgroud)

前一个活动的意图将geo放入如下:

          bundle.putString(PlaceActivity.GEO, geo);
Run Code Online (Sandbox Code Playgroud)

Hoa*_*yen 5

你应该有

String loc = getIntent().getExtras().getString(PlaceActivity.GEO);
String[] geo = loc.split(",");
Run Code Online (Sandbox Code Playgroud)