как обновить MKPolyline / MKPolylineView?

Я пытаюсь создать ломаную линию (MKPolyline) наложение, которое периодически обновляет, для моделирования перемещения объекта. Я могу достигнуть этого путем удаления старого наложения, обновления ломаной линии и добавления наложения снова, но это приводит к мерцанию.

Для аннотации точки (MKPointAnnotation) можно просто изменить его координату, и представление будет обновлено автоматически и гладко не имея необходимость удалять и повторно добавлять аннотацию.

Это также возможно так или иначе для наложения?

15
задан adriaan 3 July 2010 в 13:07
поделиться

2 ответа

Да, вам нужно будет добавить дополнительный оверлей с набором точек от вашей последней точки до вашей следующей точки. После того, как вы создадите MKPolyline с вашими точками, вы не сможете изменить его, когда он рисует MKPolylineView, не удаляя старый и не добавляя вновь созданный.

вы можете создать новый вид полилинии со всеми точками (включая новую) и добавить его на карту, но не удалять старую. затем, как только будет добавлен новый, вы можете удалить более старый, более короткий. Это может быть некрасиво в реализации, но оно должно избавить от мигания обновлений. Вы можете отличить старое от нового с помощью бирки.возможно, подсчет очков, поскольку тег будет работать.

15
ответ дан 1 December 2019 в 02:45
поделиться

Класс MKPolyline наследует MKMultiPoint, который состоит из набора точек. Это свойство доступно только для чтения, то есть, к сожалению, вы не можете его обновить.

1
ответ дан 1 December 2019 в 02:45
поделиться