2014-08-29 2 views
0

Я пытаюсь добавить Полилинии из точек, которые я добавил в свой GoogleMap. Они должны отображаться на дороге (заданы как .geodesic (true). Когда я добавляю только две точки из моего xml, нарисована строка, но она не является геодезической ... Но настоящая проблема: если я попробую добавить все точки, которые находятся в моем XML приложение не работает на всех ли кто-нибудь представление о том, что может быть не так с моим кодомДобавление точек в PolylineOptions в Android GoogleMap api 2 не работает

XML файла:.?

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<string-array name="coordinates"> 
    <item name="waypoint1">50.991185 , 7.131250</item> 
    <item name="waypoint2">50.990601 , 7.131534</item> 
    <item name="waypoint3">50.991678 , 7.130603</item> 
    <item name="waypoint4">51.000614 , 7.137122</item> 
    <item name="waypoint5">51.003929, 7.146833</item> 
    <item name="waypoint6">51.003853, 7.146931</item> 
    <item name="waypoint7">51.003697, 7.147666</item> 
    <item name="waypoint8">51.003964, 7.148090</item> 
    <item name="waypoint9">51.003982, 7.148470</item> 
</string-array> 
    </resources> 

Метод, который не является рабочий:

private void drawline(){ 
    String[] coordinates = getResources().getStringArray(R.array.coordinates); 
    List<LatLng> waypoints = new ArrayList<LatLng>(); 
    LatLng[] latlng = new LatLng[coordinates.length]; 


    for(int i=0;i < coordinates.length;i++){ 
     String coordinate[] = coordinates[i].split(","); 
     double x = Double.parseDouble(coordinate[i]); 
     double y = Double.parseDouble(coordinate[i]); 
     latlng[i] = new LatLng(x,y);  
    } 

    for (int i=0; i < coordinates.length; i++){ 
    waypoints.add(latlng[i]); 
    } 

    PolylineOptions options = new PolylineOptions() 
     .color(Color.BLUE) 
     .geodesic(true) 
     .width(5) 
     .addAll(waypoints); 

    Polyline pfad = mMap.addPolyline(options); 
    } 

Я попробовал ts по-разному, чтобы сохранить мои координаты как список LatLng, но он никогда не работал. Я был бы очень рад, если anybode может мне помочь. Возможно, есть и идея, почему линии не нарисованы как геодезические линии.

+0

, потому что ваш массив LatLng никогда не заполнены – Dhaval

+0

http://wptrafficanalyzer.in/blog/gps-and-google-map-in-android-applications-series/ взглянуть на некоторые учебники Вот. Вы найдете правильный путь – Dhaval

+0

@Dhaval Почему не заполнено? – Simas

ответ

0

Ваша проблема заключается в этом цикле:

for(int i=0;i < coordinates.length;i++){ 
    String coordinate[] = coordinates[i].split(","); 
    double x = Double.parseDouble(coordinate[i]); 
    double y = Double.parseDouble(coordinate[i]); 
    latlng[i] = new LatLng(x,y);  
} 

Вы расколоть координаты запятой (что хорошо), но вы читаете неправильный индекс. Используйте вместо этого:

double x = Double.parseDouble(coordinate[0]); 
double y = Double.parseDouble(coordinate[1]);