Je souhaite démélanger une chaîne geojson dans un type de structure approprié. J'ai trois différentes chaînes de GeoJSON que je veux désorganiser dans le même struct:Type de structure approprié pour unmarshal de geojson
var jsonBlobPointString = []byte(`{"Type":"Point", "Coordinates":[1.1,2.0]}`)
var jsonBlobLineString = []byte(`{"Type":"LineString", "Coordinates":[[1.1,2.0],[3.0,6.3]]}`)
var jsonBlobPolygonString = []byte(`{"Type":"Polygon", "Coordinates":[[[1.1,2.0],[3.0,6.3],[5.1,7.0],[1.1,2.0]]]}`)
je suis venu avec un type struct que je ne suis pas totalement satisfait:
type GeojsonType struct {
Type string
Coordinates interface{}
}
Voir ce lien pour l'exemple complet: http://play.golang.org/p/Bt-51BX__A
Je préfère ne pas utiliser l'interface {} pour les coordonnées. J'utiliserais plutôt quelque chose qui me donnerait une certaine validation par exemple Coordinates [] float64 pour Point et Coordinates [] [] float64 pour LineString.
Est-il possible de créer un type struct afin que Point, LineString et Polygon puissent tous être représentés dans Coordinates sans utiliser d'interface?
Avez-vous essayé d'implémenter l'interface Unmarshaler? – Mikke