Suite

OL3 GeoJSON vs turf GeoJSON


J'utilise OL3 et j'essaie d'inspecter si deux lignes se croisent ou n'utilisent pas de gazon. J'ai utilisé GeoJSON dans OL3 et introduit les lignes dans l'intersection () dans le gazon, mais j'obtiens un type GeoJSON inconnu. voici mon code :

lineStringdraw.on('drawend', function(e2) { var featureEnd = e2.feature; checkIntersection(featureEnd); }); function checkIntersection(currentFeature){ var features = vectorLayer.getSource().getFeatures(); var geoJSON = new ol.format.GeoJSON(); geoJSON = geoJSON.writeFeature(currentFeature); for (i=0; (features.length)>i;i++){ var feature = features[i]; geoJSON_i = geoJSON.writeFeature(feature); var intersectionStatus = turf.intersect(geoJSON,geoJSON_i); $('#infoList').append(intersectionStatus); } }

voici un morceau de l'OL3 GeoJSON :

{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-8236104.129670544,4977029.890789877],[-8236634.411554272,4974407.145256842]]},"properties":null}

Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas ou ce qui me manque ?


Turf suit la spécification GeoJSON. Un aspect de cette spécification est que les géométries doivent utiliser les coordonnées WGS 84. Chaque coordonnée doit ressembler à :[longitude latitude]. Vos données d'échantillon ne sont pas valides WGS 84 lon/lat.

Une astuce que j'utilise avec des exemples d'ensembles de données consiste à les copier et à les coller dans http://geojson.io . Si la fonctionnalité ne s'affiche pas normalement (ce n'est pas le cas avec vos exemples de données), il y a probablement un problème de données.


gazon.intersecterPrend deux polygones et trouve leur intersection. (pas des chaînes de lignes) S'ils partagent une bordure, renvoie la bordure ; s'ils ne se coupent pas, renvoie undefined. voici la doc turf.intersect