gpt4 book ai didi

mongodb - Meteor.js - mongodb $near $geometry GeoJSON 点坐标经度限制 - Leaflet.js geoJson

转载 作者:可可西里 更新时间:2023-11-01 09:52:16 25 4
gpt4 key购买 nike

我让 Meteor.js 与 Leaflet.js 对话,以便能够在“2d​​sphere”索引集合的 $near 查询周围显示有限的标记。

所以我索引我的 GeoJSON 坐标:

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

一切正常,直到我使用 $near 运算符显示经度 -90 到 90 度以外的标记。

纬度范围为 -85 到 85,但经度停止在 -90 到 90,而不是预期的 -180 到 180。

所以这很好用:

Leaflet map setView() 显示我想放置 $near curson 的 map 部分:

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

然后是服务器 $near cursor - 这正如预期的那样工作:

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

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

});

但是只要我把坐标调整到

 [-33,151]

传单 map 正确显示位置,但 mongo $near 抛出错误:

$near requires a geojson point

这很公平,因为那是一个无效点,但如果我将其更改为:

  [151,-33]

然后 Leaflet map 没有显示正确的位置并且 $near 运算符不起作用。

为什么 geoJSON 经度坐标限制在 -90 到 90 之间?以及如何在位置上显示和使用 $near 运算符:

   lat: -33 and long: 151 

最佳答案

解决了!

它与向 map 添加标记的看似无关的 Leaflet.js 方法有关。

原来我用的是:

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

将其更改为:

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

这意味着我实际上可以将 $near 光标设置为仅显示坐标 [-33,151] 周围的标记

关于mongodb - Meteor.js - mongodb $near $geometry GeoJSON 点坐标经度限制 - Leaflet.js geoJson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22374312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com