За последние несколько месяцев мне удалось выучить PHP, PDO и SQL, и я создал базовый динамический веб-сайт с функциями регистрации пользователей/активации электронной почты/и выхода из системы, следуя рекомендациям PHP/SQL. Теперь я застрял на следующем задании...
Я создал огромный набор данных квадратов/многоугольников (более 3 миллионов), каждая 1 минута широты и долготы в размере, сохраненный в массиве PHP с одним набором координат (верхний левый угол). Чтобы экстраполировать квадратную форму, я просто добавляю 0,016 градуса (~ 1 минуту) в каждое направление и генерирую остальные 3 координаты.
Теперь мне нужно проверить, что каждый многоугольник в указанном массиве находится по крайней мере над какой-то частью земли в Соединенных Штатах .... то есть, если бы кто-то мог создать графический вывод моего завершенного набора данных и взглянуть на береговую линию Сан-Франциско. , они увидят что-то вроде этого.
Это похоже на проблему «точка в многоугольнике», за исключением того, что вместо точки речь идет о другом многоугольнике, другой многоугольник является границей страны, и я не просто смотрю на пересечения. Я хочу проверить, если:
- Многоугольник/квадрат пересекается с многоугольником. (Подумайте о береговой линии / границе).
- Многоугольник/квадрат находится внутри многоугольника. (Вспомните континентальную часть США).
- Многоугольник/квадрат содержит часть многоугольника. (Думаю маленький остров).
Это иллюстрируется моим грубо нарисованным изображением:
Если он соответствует любому из этих трех условий, я хочу сохранить квадрат. Если он никак не взаимодействует с большим полигоном (т. е. находится над водой), сбросьте его.
Я думал, что большой многоугольник будет шейп-файлом США или файлом KML, из которого я мог бы вырезать координаты, чтобы создать очень сложный многоугольник.
Затем я подумал, что передам эти совпадающие квадраты и идентификаторы квадратов через в файл csv для интеграции в таблицу MySQL, содержащую набор координат каждого квадрата (на самом деле, я даже не уверен из лучших практик по работе с таблицами такого размера в MySQL, но я вернусь к этому, когда это будет необходимо). Конечная цель тогда будет заключаться в разработке карты с использованием Google Maps API через Javascript для отображения этих квадратов на карте на веб-сайте, который я кодирую (очевидно, показывая только квадраты в пределах точки обзора, чтобы убедиться, что я не облагаю налогом свою базу данных до смерти ). Я почти уверен, что мне придется сначала передать такую информацию через PHP. Но все это кажется относительно простым по сравнению с задачей создания указанного набора данных.
Очевидно, что это невозможно сделать вручную, поэтому требуется автоматизация. Я немного знаю Python, так что это поможет? Любые другие советы о том, с чего начать? Кто-то готов написать код для меня?
Array => (0 => (0 => latCoords 1 => longCoords), 1 => (0 => latCoords 1=> longCoords))
и т. д. Я просмотрел несколько шейп-файлов/файлов разметки замочной скважины, и ни один из них, похоже, не имеет нужного мне разрешения и слишком зубчатый, если смотреть вблизи. - person ReactingToAngularVues   schedule 01.03.2013