【问题标题】:Data structure: mongoengine to GeoJson数据结构:mongoengine转GeoJson
【发布时间】:2014-06-12 05:40:07
【问题描述】:

我最近在 StackOverflow 上发布了我的第一个问题,但我认为这个问题非常广泛并且充满了潜在的错误。所以我会重新开始,一步一步,用一个更短更简单的问题:

你认为这段代码正确吗?

目的是构建我的 models.py 以将数据作为 GeoJson 对象存储在我的 Mongo 数据库中。

非常感谢!


models.py:

# -*- coding: utf-8 -*-

from mongoengine import *
connect(‘mongodb_jsons’)

import datetime

class GeoJson(Document):
 # from a geojson object
 # save it in Mongodb with a geojson structure

    Date_created = DateTimeField(default=datetime.datetime.now)
    Location = PointField(auto_index=False) # as a list of 2 float numbers [ 10.000 , 240.000 ]
    Content1 = CharField()
    Content2 = CharField()

    meta = {'db_alias': 'mongodb_jsons', # save in DB ‘mongodb_jsons’
            'indexes': [                 # the geojson structure
                {'type' : 'Feature', {
                   'geometry':{
                        'type' : 'Point',
                        'coordinates' : ('Location', '2dsphere')
                        }, 
                   'properties':{
                       'content1' : 'Content1',
                       'content2' : 'Content2',    
                       'date_creation' : 'Date_created'
                        }
                    }
                }]
            }

【问题讨论】:

  • 您是否遇到错误?有什么没有做的吗?当您说“您认为这是正确的吗?”时,我不确定您在问什么。我不知道您要解决的问题...所以我不知道它是否正确满足您的要求。 :)

标签: django metadata mongoengine geojson


【解决方案1】:

那行不通 - 你需要一个 2dsphere MongoDB 中 geoJson 的索引。为什么不使用PointField 中描述的mongoengine documentation

【讨论】:

  • 我担心下游我需要模仿 [GeoJson][1] 结构在我的 HTML 模板中处理它(它将由 Leaflet 库处理)。我不确定“元”语法。我更改了问题中的代码,您认为这会起作用吗?
  • PointField 将数据存储为有效的GeoJson,因此您可以使用Doc.to_json() 来输出json 字符串
猜你喜欢
  • 2021-12-31
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
  • 2017-03-01
相关资源
最近更新 更多