Giter VIP home page Giter VIP logo

Comments (5)

brianreavis avatar brianreavis commented on September 14, 2024

Nice. Any ideas on when 2.0 will be released?

I've been thinking about the node-gdal / node-ogr issue quite a bit the last few days after going down the gyp rabbit hole (and discovering how gcore depends partly on both raster and vector features). I hadn't seen that link though. If the GDAL crew is considering merging the two, I don't see why not to do the same with binding. It saves the hassle of duplicating the GDAL source in two different repos (or splitting it out so that node-ogr and node-gdal can share it).

The gyp build currently works for Linux (precise), OSX, and Windows. It seems to run well and tie in nicely with the binding build, but if we want to gut it at some point in favor of GDAL's makefile setup, I'm all for that.

from node-gdal.

springmeyer avatar springmeyer commented on September 14, 2024

Nice. Any ideas on when 2.0 will be released?

No, but /cc @rouault who will have a sense. I started taking a closer look at the changes yesterday as I got Mapnik building against master gdal: mapnik/mapnik#2259. They are fairly minor, so it seems pretty doable actually to target both GDAL 2.0 and previous. My first read of the RFC gave me the incorrect sense that the changes were major in the sense that you'd have difficulty targeting both versions.

I've been thinking about the node-gdal / node-ogr issue quite a bit the last few days

Yes, I'm +1 still on merging node-gdal and node-ogr for the following reasons:

  1. Less work: maintain one thing
  2. Like you say: for gyp/binaries packaged with node-pre-gyp, less size to download
  3. This would dodge the scary situation where node-gdal and node-ogr both call GDAL's global register functions and things crash or experience thread deadlocking. I don't have any hard evidence of this yet, but I've seen how these two global statics in mapnik have caused bad behavior when two node-mapnik installations end up the the node_modules tree: basically font registration breaks.
  4. Possibility for cleaner, more opinionated API's in the future that might do cool stuff with both vectors and rasters.

So, my takehome is:

  1. node-gdal should suck in node-ogr
  2. GDAL master should be sucked into the gyp build
  3. This will allow the GDALOpenEx API to start being targeted.

from node-gdal.

springmeyer avatar springmeyer commented on September 14, 2024

The gyp build currently works for Linux (precise), OSX, and Windows. It seems to run well and tie in nicely with the binding build.

Cool very valuable thing to have working - did'nt even consider this could be pulled off :) One question: the --with-threads option is pretty critical to build GDAL with. Any idea if that gets respected in your gyp build? Answered my own question: it is respected:

#define CPL_MULTIPROC_PTHREAD 1

but if we want to gut it at some point in favor of GDAL's makefile setup, I'm all for that.

I've hacked a bunch at GDAL's makefile setup to limit the # of drivers it builds to save space. Most recently with this I'm down to an 8.3 MB libgdal.a. This along with header files gets posted to the Mapnik SDK tarballs at http://mapnik.s3.amazonaws.com/index.html?path=dist/dev/ each commit to mapnik-packaging. One possibility would be to have the mapnik-packaging scripts post just the GDAL stuff and then have the node-gdal build pull down a binary libgdal.a for each platform. I've been working with @BergWerkGIS to offer binary tarballs of minimal gdal for windows as well, scripted on appveyor.

from node-gdal.

sgillies avatar sgillies commented on September 14, 2024

GDAL and OGR are moderately intertwingled already. For example, the MBTiles (raster) driver requires OGR's spatiallite (vector) features. I made Fiona and Rasterio (the Python analogs of node-ogr and node-gdal) different packages because I'm of the pay only for what you eat camp, but sometimes the separation seems a little pointless. I'm +1 on combining.

My $.02 on interface compatibility: let's make the interface we want for ourselves now and hide the differences between GDAL 1.x and GDAL 2.0. If we're going to vendorize GDAL anyway and not use the system one, we're completely free to do this. The GDAL and OGR APIs are for C programmers, and not APIs we necessarily want to surface for Javascript.

from node-gdal.

springmeyer avatar springmeyer commented on September 14, 2024

Reviewed this ticket and closing as I think we're all good here. Agree 100% with @sgillies summary comments above. So, in summary:

  • merging node-ogr into node-gdal makes sense and is already in progress (b4997cf). Details of implementation being tracked at #10 and #14.
  • Targeting 2.0 is a minor issue of #ifdefs when we get there. So, I don't think we need to actually use or support GDAL 2.0/master yet.

from node-gdal.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.