Мне нужно преобразовать значение String в значение LatLng для использования в фрагменте GoogleMaps в приложении для Android. Строковое значение, скорее всего, будет представлено в виде «-45.654765, 65.432892».Преобразование строки в двойную для использования в LatLng/Google Maps
Я пробовал два разных способа сделать это, и оба привели к ошибкам. Во-первых, я попытался с помощью раскола() и ввод результатов в строку [], а затем с помощью доступа к каждому parseDouble(), как показано ниже:
String[] geo = GEO.split(",");
double lati = Double.parseDouble(geo[0]);
double lngi = Double.parseDouble(geo[1]);
LOCATION = new LatLng(lati, lngi);
Это дает ArrayIndexOutOfBoundsException
вызванное double 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);
Это дает NoSuchElementException
указывая на String lng = tokens.nextToken();
.
В обоих случаях строкой, над которой я работаю, GEO
, является public static final
и передается из другого вида с помощью намерения, где в настоящее время он просто жестко закодирован как "43.75,-70.15"
.
LOCATION
является public static
и является переменной LatLng, инициализированной как null
.
Может ли кто-нибудь указать мне правильное направление? Это кажется очень простым, так что я еще более запутанным, чем обычно ...
EDIT:
Данные происходит в другой деятельности, где она проходит через умысел. Деятельность, которая получает намерение имеет GEO
определяется следующим образом:
public static final String GEO = "geo";
И намерение от предыдущей деятельности ставит гео в так:
bundle.putString(PlaceActivity.GEO, geo);
Как GEO может быть окончательным и в то же время передается от другой деятельности, с помощью намерения? Ваш GEO никогда не будет иметь никакой запятой. Не могли бы вы добавить код о том, как настроено GEO? – ddmps