Граничная рамка на плоской карте VS Сферическая, т.е. прямая линия по сравнению с расстоянием большого круга

Я разрабатываю приложение, в котором я должен сказать, находится ли такой элемент, как fb video или instagram photo, внутри региона или происходит из определенного региона, например Мельбурна.

Так что до сих пор, когда я хочу найти ограничительную рамку для какой-нибудь страны, например: Австралия, Мельбурн.

  • Я просто захожу на этот веб-сайт http://boundingbox.klokantech.com/.
  • Нарисуйте прямоугольник, охватывающий Мельбурн.
  • Чтобы узнать его GeoJson: [[[144.5937418, -38.4338593], [145.5125288, -38.4338593], [145.5125288, -37.5112737], [144.5937418, -37.5112737], [144.5937418, -38.4338593]]]

Но, прочитав большой круг, он говорит:

  • Короткое расстояние изогнуто, поэтому ограничивающая рамка должна выглядеть так, как показано на этом веб-сайте: https://www.jasondavies.com/maps/bounds/.

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

  • Итак, на изображении ниже вы можете видеть, я всегда буду уверен, что точки y, z будут в Мельбурне.
  • Но с изогнутой ограничивающей рамкой он может не покрывать весь Мельбурн, и поэтому я никогда не уверен, находится ли точка внутри Мельбурна или нет.

введите описание изображения здесь


person Arjun Chaudhary    schedule 13.06.2017    source источник


Ответы (1)


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

Теперь, чтобы ваша функция работала, самое важное - быть последовательным и всегда использовать одну и ту же проекцию (или отсутствие проекции!) Между всеми данными. У вас есть непроектируемая ограничительная рамка по широте и долготе (то есть с координатами, выраженными в градусах)? Хорошо, просто рассчитывай также и на широте и долготе. Затем оцените, находится точка внутри или нет. Самый простой - использовать такие функции postgis, как ST_WITHIN. Затем вам решать, отображать его или нет, либо как широта и долгота (прямая линия), либо сначала проецируя его (изогнутая линия).

Чтобы облегчить понимание, придумайте более простой вопрос: является ли точка к югу от 30-й градуса параллелью? На бумаге 30S будет изогнутой линией, но вы все равно можете знать, что находитесь к югу от нее, если ваша широта меньше -30.

person JGH    schedule 15.06.2017