Имам Meteor.js, за да говоря с Leaflet.js, за да мога да показвам ограничени маркери около заявката $near на индексирана колекция "2dsphere".
Така че индексирам моите GeoJSON координати:
Locations._ensureIndex({'geometry.coordinates':'2dsphere'});
Всичко работи, докато не използвам оператора $near, за да покажа маркери отвъд -90 до 90 географска дължина.
Географската ширина граничи с -85 до 85, но дължината спира на -90 до 90, а не -180 до 180, както се очаква.
Така че това работи добре:
Карта на листовка setView(), за да покаже частта от картата, върху която искам да поставя $близо до курсора:
window.map = L.map('map').setView([10,50],11);
След това курсорът на сървъра $близо - това работи точно както се очаква:
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]
Тогава картата на листовката не показва правилното местоположение и операторът $near не работи.
Защо координатите на географската дължина на geoJSON са ограничени между -90 до 90? и как да покажа и използвам оператора $near на местоположение:
lat: -33 and long: 151