Meteor.js - mongodb $близо до $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, както се очаква.

Така че това работи добре:

Карта на листовка 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 

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