Показать аннотацию на MKMapView в зависимости от местоположения пользователя - PullRequest
0 голосов
/ 05 декабря 2010

У меня проблемы с Objective C в данный момент с разработкой чего-то особенного.

Итак, после инициализации MKMapView и отображения позиции пользователя я хотел бы реализовать метод для отображения аннотаций, которыерядом с позицией пользователя.Я сохранил все необходимые точки в базе данных SQLite в специальной таблице.У меня есть два поля - а именно lon и lat - я думаю, что понятно, что подразумевается под этим.

Кто-нибудь знает, как показать ТОЛЬКО те аннотации, которые видны на экране, какисполнитель, насколько это возможно.После того, как пользователь прокручивает карту - он должен снова вызвать метод для поиска в базе данных, есть ли другие точки, которые необходимо показать ...

Большое спасибо заранее за вашу помощь,

С уважением,

Доминик

Ответы [ 2 ]

1 голос
/ 05 декабря 2010

Пара баллов:

Если вы используете iOS4, поведение просмотра карты изменилось, так что оно автоматически экономит память, создавая только аннотации, которые находятся в видимом представлении.

Во-вторых, так же, как вы можете создать табличное представление с тысячами ячеек и при этом плавно прокручивать его, закадровые комментарии не влияют на производительность. Вы должны держать свои аннотации очень маленькими, чтобы они не занимали много памяти. Представления аннотации занимают память.

Ваша проблема возникнет, когда пользователь уменьшит масштаб, и одновременно будет видно слишком много просмотров аннотаций. Когда вы увеличиваете изображение, вам не нужно слишком беспокоиться о закадровых аннотациях.

1 голос
/ 05 декабря 2010

Вам нужно будет сделать несколько вещей.

1) Получить центр вашей карты - используйте свойство centerCoordinate вашего MKMapView

2) Запросите в вашей базе данных все элементы в пределахопределенное расстояние от центра карты.

3) Отображать их

Это (2) хитрый вопрос - вам нужен метод, который будет возвращать все элементы рядом с последним у вас есть.

Эта ссылка содержит удобную реализацию того, как это сделать:)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...