У меня есть 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