我通过以下方式对数据建模:用户,图层,区域。 用户链接到任意数量的层;图层可以包含任意数量的区域; 区域可以是圆形(依次由geojson点和半径表示)或多边形。
猫鼬模式:
面积
import { Schema } from 'mongoose';
const { Geometry } = require('mongoose-geojson-schemas');
export const AreaSchema: Schema = new Schema({
radius: { type: Number },
zone: Geometry
});
层:
import { Schema, Types } from 'mongoose';
export const LayerSchema: Schema = new Schema({
areas: { type: [Types.ObjectId] }
});
用户:
import { Schema, Types } from 'mongoose';
export const UserSchema: Schema = new Schema({
layers: { type: [Types.ObjectId] }
});
我的系统是事件驱动的,当处理了一个陌生且与系统不相关的新用户位置(任意geojson点)时,我需要确定用户位置是否包含在其链接区域之一中。
我想知道什么是最好的方法(最快,最准确),以便得出我上面所描述的结论。