Монгодские геопространственные индексы, 2d против 2dsphere

В соответствии с документами он говорит о 2d индексах:

2d-индекс поддерживает вычисления на плоской евклидовой плоскости. 2d-индекс также поддерживает вычисления только расстояния по сфере, но для геометрических вычислений (например, $geoWithin) на сфере, хранит данные как объекты GeoJSON и использует индексный тип 2dsphere.

Немного вещей, которые я не понимаю.

  • Я не понимаю, что подразумевается только на расстоянии, означает ли это Аккорд (эта линия, соединяющая две точки поверхности через линию "внутри" )?
  • Как работает этот расчет против долготы и широты Земли? Если это было предназначено для евклидова пространства, как оно выражает расстояние в радианах?
  • Вместо этого, используя индексы 2dsphere, он правильно вычисляет поверхностное расстояние между двумя точками, но работает без указания 360 долготных линий и 180 широтных линий. Он запрограммирован специально для долготы и latinudes Земли?
  • Если 3. выше правильно. учитывает, что Земля сплющена сфероидом, а не идеальной сферой?
3
задан rahmanisback 12 окт. '16 в 1:15
источник поделиться

1 ответ

  • Нет. Это означает расстояние по поверхности, используя формулу Хаверсина.
  • Я не уверен, что вы пытаетесь спросить в отношении "как он выражает расстояние в радианах", но если вы имеете в виду, как значения угла лат/лон и дельт преобразуются в радианы, это: PI * angle/180.0, Для полной формулы Хаверсина ознакомьтесь с этой ссылкой для реализаций на 84 языках: http://rosettacode.org/wiki/Haversine_formula
  • В индексах 2dsphere используется привязка WGS84 (которая определяет границы). Смотрите: http://spatialreference.org/ref/epsg/4326/.
  • Не глядя на их код, нельзя сказать. Но учитывая, что они используют WGS84 и говорят о " землеподобной сфере", это очень сомнительно. Я предполагаю, что они используют Haversine (так что расчет расстояний - всего лишь приближение).
1
ответ дан apb 02 нояб. '16 в 3:50
источник поделиться

Другие вопросы по меткам