2013-07-26 2 views
-1

Я получаю исключение Null Pointer, когда пытаюсь добавить точки к многоугольнику Google Maps из массива.Добавление точек к многоугольнику из массива

if(inPolygon.check(list[i].vertices, list[i].latCoords, list[i].longCoords, latitude, longitude) != true) { 

    PolygonOptions rectOptions = new PolygonOptions(); 
       for(int n = 0; n <= list[i].vertices; n++){ 
        rectOptions.add(new LatLng(list[i].latCoords[n], list[i].longCoords[n])); 
       } 
} 

У меня есть массив объектов (список), и каждый объект имеет два массива: один для координат широты (latCoords), и один для долготы (longCoords). Я хотел бы создать многоугольник из координат обоих массивов, итерации через них, как вы видите, с циклом for.

Но я продолжаю получать исключение из null-указателя, когда пытаюсь это сделать, и я не уверен, почему. Я был бы признателен за любую помощь или предложения по этой проблеме, так как я только начинающий в разработке карт/Android.

+1

* Где * происходит исключение, и вы уверены, что 'list' является ненулевым и содержит только ненулевые ссылки? –

+0

LogCat указывает на линию, которая добавляет точки к многоугольнику (116). Я считаю, что список не является нулевым, так как он содержит два объекта. –

ответ

0

Я подозреваю это проблема:

for(int n = 0; n <= list[i].vertices; n++) 

Вы используете n здесь:

list[i].latCoords[n] 

(и то же самое с longCoords) - и поэтому, когда n является равной к list[i].vertices, что может быть нулевой ссылкой.

Я подозреваю, что вы хотите, чтобы ваша проверка петли быть строго меньше (что гораздо чаще):

for (int n = 0; n < list[i].vertices; n++) 
+0

Хмм .. Когда я это делаю, я получаю другую ошибку. «IndexOutofBoundsException: недопустимый индекс 0, размер 0». –

+0

@RowanK .: Ну, я подозреваю, что вы понимаете это в другом месте, это прогресс. Поэтому вам нужно посмотреть, где * это * происходит, и обратиться к нему. –

+0

В нем говорится, что я получаю эту ошибку в строке 121, которая является строкой, где я создаю многоугольник Polygon polygon = googleMap.addPolygon (rectOptions); –

Смежные вопросы