Что мне нужно, чтобы узнать границы карты совета в Австралии для приложения iPhone? - PullRequest
1 голос
/ 03 марта 2011

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

Я, вероятно, могу получить много этой информации от советов, однако какую информацию мне нужно будет запросить? Достаточно ли информации о границе? И как тогда мой разработчик должен это использовать?

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 марта 2011

Я отвечу на два ваших вопроса отдельно:

1.Где я могу получить границы карты совета для Австралии?

Австралийское бюро статистики публикует эти данные в формате ESRI Shapefile и MapInfo.Области известны как «Местные органы власти».Набор данных 2010 года доступен в http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1259.0.30.001July%202010?OpenDocument

2.Как использовать геопространственные данные?

Формат ESRI Shapefile может быть прочитан практически каждым пакетом пространственных данных под солнцем.Однако у меня есть несколько избранных:

На стороне клиента Моя любимая библиотека - GDAL , библиотека переводчиков с лицензией Open Source в стиле X / MIT.Он поставляется с привязками C, C ++, Python и C #.Или, если это слишком тяжеловесно, вы можете использовать Shapelib , лицензированную MIT библиотеку C, используемую GDAL.

На стороне сервера вы не можетепройти мимо PostGIS .Если вы отправляете пару широта / долгота на веб-сервер, рассмотрите возможность установки этих пространственных расширений для сервера postgresql.Вы можете загрузить шейп-файл в базу данных с помощью прилагаемой утилиты shp2pgsql.Затем, чтобы найти LGA, по которому ваша лат / пара попадает в базу данных, выполните следующие действия:

SELECT * FROM lga2010
  WHERE ST_Intersects(lga2010.the_geom,
                      ST_SetSRID(ST_MakePoint(your_longitude, your_latitude),4326))
0 голосов
/ 03 марта 2011

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

Такая серия может выглядеть примерно так:

Region 1:
    64.222, 41.135
    64.161, 41.143
    64.114, 41.080
    ...
Region 2:
    64.114, 41.080
    64.008, 41.090
    64.008, 40.902
    ...

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

...