- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我从金奈和类加罗尔城市的谷歌地图中手动获取坐标并插入到我的数据库中。对于类加罗尔市,$geoIntersect 工作得很好。然而,出于某种原因,对于钦奈市,它没有出现。我不确定我在哪里/错过了什么。在下面附上我的代码
类加罗尔城市详情
{
"_id" : ObjectId("5b2d45ef4b511713052b49f9"),
"cityId" : 10256,
"countryEn" : "india",
"countryAr" : "india ar",
"provinceEn" : "Bangalore",
"provinceAr" : "Bangalore ar",
"cityEn" : "Bangalore",
"cityAr" : "Bangalore ar",
"lat" : 12.972442,
"lon" : 77.580643,
"countryCode" : "+91",
"population" : 150257,
"boundaries" : {
"coordinates" : [
[
[
77.747618,
13.105034
],
[
77.758604,
13.039487
],
[
77.816283,
12.959201
],
[
77.825896,
12.853452
],
[
77.742125,
12.884244
],
[
77.700926,
12.797213
],
[
77.461973,
12.783821
],
[
77.412535,
12.911017
],
[
77.390562,
13.047514
],
[
77.525145,
13.150506
],
[
77.636381,
13.155855
],
[
77.747618,
13.105034
]
]
],
"type" : "Polygon"
}
}
我使用的查询
db.Cities_Master.find({
boundaries: {
$geoIntersects: {
$geometry: { type: 'Point', coordinates: [77.5476, 13.105034] },
},
},
})
金奈市详细信息
{
"_id" : ObjectId("5b2d4a734b511713052b4a01"),
"cityId" : 10255,
"countryEn" : "india",
"countryAr" : "india ar",
"provinceEn" : "chennai",
"provinceAr" : "chennai ar",
"cityEn" : "chennai",
"cityAr" : "chennai ar",
"lat" : 13.067439,
"lon" : 80.237617,
"countryCode" : "+91",
"population" : 150257,
"boundaries" : {
"coordinates" : [
[
[
80.309211,
13.257326
],
[
80.332557,
13.241285
],
[
80.332557,
13.249305
],
[
80.295478,
13.091519
],
[
80.248786,
12.838584
],
[
80.149909,
12.880089
],
[
80.097724,
12.936309
],
[
80.123816,
13.14368
],
[
80.320197,
13.199841
],
[
80.178748,
13.2092
],
[
80.239173,
13.215885
],
[
80.309211,
13.257326
]
]
],
"type" : "Polygon"
}
}
查询我以前找金奈
db.Cities_Master.find({
boundaries: {
$geoIntersects: {
$geometry: { type: 'Point', coordinates: [80.309211, 13.257326] },
},
},
})
对于 Chennai 查询,我得到没有找到记录。我是否以错误的方式或任何其他问题插入了坐标?任何帮助,将不胜感激。谢谢
最佳答案
Bangalore City
坐标由有效的闭合多边形表示,这就是 MongoDB 查询有效的原因。在 Chennai
情况下,坐标顺序不正确。您可以轻松查看here :
因此,要解决这个问题,您可以在数据库中重新排序不正确的坐标
。 Chennai
的有效文档可能如下所示:
db.Cities_Master.save({
"_id" : ObjectId("5b2d4a734b511713052b4a01"),
"cityId" : 10255,
"countryEn" : "india",
"countryAr" : "india ar",
"provinceEn" : "chennai",
"provinceAr" : "chennai ar",
"cityEn" : "chennai",
"cityAr" : "chennai ar",
"lat" : 13.067439,
"lon" : 80.237617,
"countryCode" : "+91",
"population" : 150257,
"boundaries" : {
"coordinates" : [
[
[
80.309211,
13.257326
],
[
80.332557,
13.249305
],
[
80.332557,
13.241285
],
[
80.320197,
13.199841
],
[
80.295478,
13.091519
],
[
80.248786,
12.838584
],
[
80.149909,
12.880089
],
[
80.097724,
12.936309
],
[
80.123816,
13.14368
],
[
80.178748,
13.2092
],
[
80.239173,
13.215885
],
[
80.309211,
13.257326
]
]
],
"type" : "Polygon"
}
})
可以预览here .在这种情况下,您的查询工作正常。
关于MongoDB $geoIntersects 不返回特定城市的任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50994901/
我有一个集合,其属性为“place”,如下所示。 "place" : { "name" : "Central Region", "country" : "Country_A",
我从金奈和类加罗尔城市的谷歌地图中手动获取坐标并插入到我的数据库中。对于类加罗尔市,$geoIntersect 工作得很好。然而,出于某种原因,对于钦奈市,它没有出现。我不确定我在哪里/错过了什么。在
我有一个名为 search2 的集合,其中包含大约 20000 个这样的文档: { "loc": { "type": "Polygon", "c
我有一个 Mongo 集合,我正在尝试对其执行 $geoIntersects 查询。 mongo中的数据格式为: { "_id" : ObjectId, "created_at" :
mongoDB 中的$geoWithin 和$geoIntersects 运算符有什么区别? 如果我正在寻找坐标(使用默认坐标引用系统),$geoWithin 和 $geoIntersects 将返回
我有一个 MongoDB 数据库,其中包含一个名为 fooCollection 的集合。该集合中包含以边界多边形方式包含地理空间数据的文档。我在我的应用程序中使用 C# MongoDB 驱动程序。我注
我有一个包含文档的集合,每个文档都有一个带有多边形的字段数组。 我想测试我的多边形是否与这些多边形中的任何一个相交。如果有帮助的话,它们都是盒子形状的。 如果您添加将我的多边形包含在我正在测试的数组中
我在一个集合中有事件,每个事件都包含一个所需的位置,设置一个 GeoJSON 多边形。 我在另一个集合中也有服务提供商,也有一个 GeoJSON 多边形,指示他们可以交付的区域。 对于给定的服务提供商
我在 2dsphere 索引集合中插入一个点,并试图在多边形中找到它: c = db.foo; c.ensureIndex({'value.geometry': '2dsphere'}); c.ins
我正在使用 Sinatra 和 mongoid 驱动程序,现在我正在尝试在 mongoid 中执行此查询,实际上我有一个名为 'geometry 的地理空间(多边形)字段': db.states.fi
我正在尝试查找符合我的条件的社区 - boundries 多边形与帖子的坐标相交,但我无法做到 - 无法使用 let in我的 管道 $match 帖子实体示例: { _id: ObjectId,
我想查询所有包含一个点的多边形的文档,然后针对该结果集,根据该点与文档位置的接近程度对其进行排序。 想象一下,我有一个 friend 数据库,因为我很酷,想看看哪些 friend 在我的范围内并且愿意
我有一个使用 MongoDb 的 Java 应用程序(客户端版本 3.12)。Filters.geoIntersects 从 Java 应用程序不返回任何内容从 Robo 3T 查询相同的数据时会返回
我是一名优秀的程序员,十分优秀!