тепловая карта на карте в iphone ....? - PullRequest
3 голосов
/ 04 февраля 2012

Мой клиент хочет показать тепловую карту всех стран, откуда он получает обновления. Например, если один из его магазинов закрыт в Америке, он хочет, чтобы я показывал всю страну красным цветом, а если новый открыл в Бразилии, то он должен показывать Бразилию зеленым цветом. И когда я нажимаю на Бразилию, он приближается и показывает аннотации булавок, где бы ни открывались и закрывались магазины.

Так что мой вопрос: может ли кто-нибудь подсказать мне, как показать конкретную страну на карте в определенном цвете?

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 08 февраля 2012

Ну, я нашел решение для этого .. и вот как я это сделал ..

  1. Вам необходимо получить координаты границ стран, которые я получил от http://thematicmapping.org/downloads/world_borders.php. Вы можете получить набор данных и преобразовать файл .shp в формат .kml с помощью программного обеспечения QGIS здесь http://hub.qgis.org/projects/quantum-gis/wiki/Download.

  2. Теперь извлеките координаты границы из KML, а затем используйте его, чтобы нарисовать MKPolygon на карте.

и вот так это будет выглядеть ..

enter image description here

в надежде, что это кому-нибудь поможет.

1 голос
/ 04 февраля 2012

Я ожидаю, что за вас проголосовали, потому что сообществу StackOverflow нравятся люди, которые решают свои проблемы, немного изучают и думают о своей проблеме, а затем задают вопрос, на который можно ответить в нескольких параграфах.

Задавая вопрос типа «кто-то попросил меня сделать это, и вместо того, чтобы думать о том, как я мог бы это сделать, я только что пришел сюда» вынуждает вас отказаться.

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

Что может быть проще, это найти векторную карту мира из фондового искусствазатем в Photoshop вырежьте каждую страну и экспортируйте ее в виде отдельных зеленых растровых изображений с прозрачным фоном, чтобы у вас было отдельное изображение для каждой страны и отдельное фоновое изображение со всеми странами в красном.

Затем вваше приложение, вы помещаете изображение карты в UIScrollview с масштабированием enabсветодиод.Если вам нужно действительно увеличить масштаб, вам нужно будет использовать CATiledLayer и еще больше нарезать изображения, но для ваших целей вам, вероятно, удастся получить большое изображение, размер которого примерно в 2 - 3 раза больше размера экрана iPhone.

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

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

Очевидно, что каждый шаг в этом вопросе может быть самостоятельным вопросом StackOverflow,но попробуйте и посмотрите, где вы застряли, а затем вернитесь и задайте больше вопросов.

...