Meteor.js - mongodb $ near $ geometry Ограничение долготы координат точки GeoJSON - Leaflet.js geoJson

У меня есть Meteor.js, чтобы поговорить с Leaflet.js, чтобы иметь возможность отображать ограниченные маркеры вокруг запроса $ near индексированной Коллекции "2dsphere".

Поэтому я индексирую свои координаты GeoJSON:

    Locations._ensureIndex({'geometry.coordinates':'2dsphere'});

Все работает до тех пор, пока я не использую оператор $ near для отображения маркеров за пределами от -90 до 90 долготы.

Широта ограничивается от -85 до 85, но долгота останавливается от -90 до 90, а не от -180 до 180, как ожидалось.

Итак, это отлично работает:

Листовка map setView (), чтобы показать часть карты, на которой я хочу разместить $ near curson:

window.map = L.map('map').setView([10,50],11);

Затем курсор Server $ near - это работает так, как ожидалось:

Meteor.publish('locations', function() {

return Locations.find({'geometry.coordinates':{ $near :
                       { $geometry :
                           { type : "Point" ,
                             coordinates: [10,50] } },
                         $maxDistance : 10000
           } 
           });

});

Но как только я поправлю координаты на

 [-33,151]

Карта листовки показывает местоположение правильно, но mongo $ near выдает ошибку:

$near requires a geojson point

Что достаточно справедливо, потому что это недопустимая точка, но если я изменю ее на:

  [151,-33]

Тогда карта Leaflet не показывает правильное местоположение, и оператор $ near не работает.

Почему координата долготы geoJSON ограничена от -90 до 90? и как показать и использовать оператор $ near в местоположении:

   lat: -33 and long: 151 

person polonski    schedule 13.03.2014    source источник


Ответы (1)


Решил!

Это было связано с, казалось бы, не связанным с Leaflet.js способом добавления маркера на карту.

Итак, изначально я использовал:

 var location=L.marker(mark.geometry.coordinates).addTo(window.map);

Изменив это на:

 var location=L.geoJson(mark).addTo(window.map);

Это означало, что я мог установить курсор $ near так, чтобы отображались только маркеры вокруг моих координат [-33,151]

person polonski    schedule 14.03.2014