猿问

GoLang Mongo GeoJSON

在Golang中,使用MongoDB,我试图存储GeoJSON对象,同时保留2dsphere索引。

我无法声明可以同时处理“点”和“多边形”的通用结构,因为“点”具有坐标字段,而“多边形”具有坐标字段。[]float64[][]float64

你对如何声明这样的结构有任何想法吗?


慕姐4208626
浏览 123回答 2
2回答

jeck猫

您可以尝试在结构和结构中用作字段。我为您的方案创建了一个简单的程序,如下所示:interfacepolygonpointpackage mainimport (    "fmt")type figure struct {    name        string    coordinates interface{}}func main() {    Point := figure{"Point", [2]float64{2.0, 7.88}}    Polygon := figure{"Polygon", [2][2]float64{{2.0, 7.88}, {3.0, 7.88}}}    fmt.Println(Point)    fmt.Println(Polygon)}输出:{Point [2 7.88]}{Polygon [[2 7.88] [3 7.88]]}

蓝山帝景

首先,Ghoper的答案是100%正确的。的加入对我帮助很大。对于将来访问此处的任何人,这是我的GeoJson要素集合结构布局,以供参考:Coordinates interface{}// Feature Collectiontype FeatureCollection struct {    ID       string    `json:"_id,omitempty" bson:"_id,omitempty"`    Features []Feature `json:"features" bson:"features"`    Type     string    `json:"type" bson:"type"`}// Individual Featuretype Feature struct {    Type       string     `json:"type" bson:"type"`    Properties Properties `json:"properties" bson:"properties"`    Geometry   Geometry   `json:"geometry" bson:"geometry"`}// Feature Propertiestype Properties struct {    Name        string `json:"name" bson:"name"`    Height      uint64 `json:"height" bson:"height"`    Purchased   bool   `json:"purchased" bson:"purchased"`    LastUpdated string `json:"last_updated" bson:"last_updated"`}// Feature Geometrytype Geometry struct {    Type        string      `json:"type" bson:"type"`    Coordinates interface{} `json:"coordinates" bson:"coordinates"`}适用于所有 GeoJson 类型 ( 线串、 点、 多边形、 多多边形 )
随时随地看视频慕课网APP

相关分类

Go
我要回答