Unable to overwrite isGeometryValid function.
Running this in NodeJS, I seem to be unable to overwrite this function to provide a custom implementation (as suggested by the comment). Here is a snippet of what I'm trying to do:
function translate(json) {
GeoJSON.isGeometryValid = GJV.isGeometryObject;
return GeoJSON.parse(json, { Point: 'coords', doThrows: { invalidGeometry: true } } );
}
This appears to be a scoping issue. You can set the function on the GeoJSON object, but that does not change the function used internally. I've tested this with a few console.log statements. For example:
function translate(json) {
GeoJSON.isGeometryValid = GJV.isGeometryObject;
console.log(GeoJSON.isGeometryValid); // displays the GJV.isGeometryObject function
return GeoJSON.parse(json, { Point: 'coords', doThrows: { invalidGeometry: true } } );
}
In geojson.js:
...
GeoJSON.parse = function(objects, params, callback) {
...
console.log(GeoJSON.isGeometryValid); // displays the original GeoJSON.isGeometryValid function
geomAttrs.length = 0;
...
}
Maybe the isGeometryValid function should be included in the GeoJSON.defaults object, allowing for it to be overwritten as part of the params parameter?
Hi @caseycesari , have you had a chance to look over this yet?
Hi @hparkertt. Thanks for the ping. I haven't had a chance yet. Realistically, I'm hoping to wrap up all the open PRs and issues by the end of the year.
Hey @caseycesari , just checking in again. Let me know if you need anything!
Hi @caseycesari , any word on this?
Hello @hparkertt Many apologies for the delay. Truly trying to get to this soon, and make a release.