Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problème avec les Point dans le model (geoPosition) #1

Open
aboire opened this issue Nov 5, 2015 · 5 comments
Open

Problème avec les Point dans le model (geoPosition) #1

aboire opened this issue Nov 5, 2015 · 5 comments
Assignees

Comments

@aboire
Copy link
Member

aboire commented Nov 5, 2015

il faut mettre la longitude au début

Point coordinates are in x, y order (easting, northing for projected coordinates, longitude, latitude for geographic coordinates):

{ "type": "Point", "coordinates": [100.0, 0.0] }

http://geojson.org/geojson-spec.html

@oceatoon
Copy link
Member

oceatoon commented Nov 5, 2015

je pense qu'effectivement ce refactor peut etre interressant
car ca permet de suivre les standard d'application fonctionnel
par contre le chgt on le fera avec @Kgneo
puisque ca creer un vrai impact

effectivement convertir notre structure a ce format
http://geojson.org/geojson-spec.html#id2
nous permettrait de respecter la norme geoJSON (une norme fonctionnel )
plutot que la norme semantique schema
qui sera généré par le traducteur et génarateur semantique
dans lequel on convertirait l'attribut geoJSON en geo de schema

on pourrait le faire en deux etapes
1- ajouter le format dont @aboire a besoin et maintenir les 2 formats
2 - refactorer pour n'en garder qu'un

wdyt ?

@aboire
Copy link
Member Author

aboire commented Nov 5, 2015

pour meteor la moulinette pour mettre à jour les Point pour que l'index soit bon

            Citoyens.find({}).fetch().map(function(c){
                if(c.geo && c.geo.longitude){
                    Citoyens.update({_id:c._id}, {$set: {'geoPosition': {
                                type: "Point",
                                'coordinates': [parseFloat(c.geo.longitude), parseFloat(c.geo.latitude)]
                            }}});
                }
            });*/

et j'ai test avec ça et l'index est correcte

            Citoyens._ensureIndex({
                    "geoPosition.coordinates": "2dsphere"
            });
            console.log(JSON.stringify(Citoyens.find({'geoPosition.coordinates': {
                        $nearSphere: {
                            $geometry: {
                                type: "Point",
                                coordinates: [55.489422, -21.30901]
                            },
                            $maxDistance: 5000
                        }}},{_disableOplog: true,fields:{pwd:0}}).fetch()));

@Kgneo
Copy link
Member

Kgneo commented Nov 6, 2015

D'après ce que j'ai compris, il s'agit simplement d'inverser la position
des lat/lng dans geoPosition.
Si c'est bien ça, ça ne me pose pas de problème, j'aurais juste une petite
modif à faire de mon côté pour que le SIG ne plante pas.

        this.Sig.getCoordinates = function(thisData, type)
        {
            if(typeof thisData.geoPosition != "undefined"){
                if(type == "markerSingle"){
                    var lat = thisData.geoPosition.coordinates[1];
                    var lng = thisData.geoPosition.coordinates[0];
                    return new Array (lat, lng);
                } else if(type == "markerGeoJson"){
                    return thisData.geoPosition.coordinates;
                }

@aboire
Copy link
Member Author

aboire commented Nov 6, 2015

yes et il faut que ça soit des Float aussi

@sylvainbarbot
Copy link
Member

A faire :

  • changer l'enreg des Point pour tous les objets (@Kgneo)
  • faire la moulinette pour toutes les collections (@aboire)
  • organiser le passage pour tous les environnements (dev, qa, prod) (@sylvainbarbot)

oceatoon pushed a commit that referenced this issue Jan 20, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants