MySQL — Найти точки, используя пространственные многоугольники (границы)

Я хочу выбрать фотографию в зависимости от местоположения (широта / долгота), когда кто-то другой выполняет поиск по стране или городу.
Например: местоположение фотографии 12.127, 42.127 -> запрос «Сан-Франциско» -> выбрать точки внутри этой области (хорошим примером является Instagram, где фотография связана с городом + страной)

Прямо сейчас я ищу использовать полигоны, чтобы найти местоположения, основанные на городе / стране. Однако я не уверен, как использовать и хранить полигоны в моей базе данных.

Вот мои визуальные шаги (не уверен, что это правильно технически)

  1. Получить полигоны / области на основе города / страны от table1
  2. Найти точки от table2 внутри многоугольника от table1

Если эти шаги верны, я не смог найти ресурсы для получения полигонов для городов или стран.

Пожалуйста, включите несколько примеров + структуры таблиц и пояснения о том, как это реализовать.

Спасибо 🙂

0

Решение

Mysql уже довольно давно поддерживает геопространственная типы данных и функции.

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

Документация Mysql содержит множество примеров типов данных и функций. Вы также можете найти как бесплатные, так и несвободные источники в Интернете, которые содержат координаты различных зон метро. Рекомендовать сторонний ресурс не по теме на SO, поэтому я не буду давать никаких рекомендаций.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]