Si eres programador, trabajas sobre SIG, y por desgracia, tienes que hacer clientes SIG Web, creo que conocerás la solución «Openlayers» que nos hace la vida mas sencilla a todos los que nos peleamos a diario con esto…

Openlayers 3
El salto de la rama 2.x a la 3.x ha sido muy dura. Incluso compilar, desde el código fuente, la rama 3.x es bastante complicado (si vemos como se trabajaba en la version 2.x). Y recompilar el código es una necesidad cuando no paran de encontrarse errores y pequeños fallos (recordemos que estamos en una beta). Errores como por ejemplo el que se comenta en este hilo respecto del manejo de las capas «ImageStatic» como fuente de las imágenes.
Bueno pues manos a la obra.
Requisitos:
Os dejo una lista, instala todos por defecto y que estén en el disponibles en el PATH:
- Git
- Node.js
- Python 2.6/2.7
- Java 7 (yo usé el JRE)
Una cosa muy curiosa es que Python se tiene que instalar en «C:\Python27» o «C:\Python26» o no funcionará este sistema.
Git haz tu trabajo
Nos traemos el repositorio entero de OL3 desde Github (te recomiendo una ruta corta, tipo «C:\ol3» que es la que voy a usar a lo largo del manual):
git clone https://github.com/openlayers/ol3.git
Esto tardará un rato… es la hora del café!
Dependencias… y algo de magia
Bien, ahora comprobamos si tenemos todo lo que necesitamos:
C:\ol3>build.py checkdeps Program "./node_modules/.bin/cleancss" seems to be MISSING. Program "git.exe" seems to be present. Program "C:Python27\Scripts\gjslint.exe" seems to be MISSING. Program "C:\Program Files\jsdoc3\jsdoc.cmd" seems to be MISSING. Program "./node_modules/.bin/jshint" seems to be MISSING. Program "C:Python27\python.exe" seems to be MISSING. Program "C:phantomjs-1.9.7-windows\phantomjs.exe" seems to be MISSING. For certain targets all above programs need to be present.
Fue bonito mientras duró (no iba a funcionar a la primera 🙂
Pero vamos a realiza un par de comandos que nos van a arreglar el asunto:
npm install
Instalará bastantes cosas… otro café?. Por último:
C:\ol3>c:\Python27\Scripts\easy_install.exe http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz C:\ol3>c:\Python27\Scripts\easy_install.exe pystache
Y… redoble de tambores:
C:\ol3>build.py checkdeps Program ".\node_modules\.bin\cleancss.cmd" seems to be present. Program "git.exe" seems to be present. Program "gjslint.exe" seems to be present. Program ".\node_modules\.bin\jsdoc.cmd" seems to be present. Program ".\node_modules\.bin\jshint.cmd" seems to be present. Program "python.exe" seems to be present. Program ".\node_modules\.bin\phantomjs.cmd" seems to be present. For certain targets all above programs need to be present.
Y ahora la parte más difícil…
… Compilar. Hay mucho fallos en la versión para Windows de los scripts, por lo que hay que bucear un montón por los foros de GitHub para encontrar la solución a problemas en los scripts (rutas largas, directorios que no existen, rutas linux, etc…) yo lo he conseguido, con los scripts siguientes:
Descomprime en el raíz del repositorio de Openlayers, y ya puedes lanzar el build.
C:\ol3>build 2014-10-23 11:57:44,256 build/ol.css: .\node_modules\.bin\cleancss.cmd css/ol.css 2014-10-23 11:57:44,424 build/ol.js: node tasks/build.js config/ol.json build/ol.js info ol Parsing dependencies info ol Compiling 333 sources 2014-10-23 11:58:06,733 build/ol.js: uncompressed: 406514 bytes 2014-10-23 11:58:06,733 build/ol.js: compressed: 121282 bytes, (saved 70.17%) 2014-10-23 11:58:06,734 build/ol-debug.js: node tasks/build.js config/ol-debug.json build/ol-debug.js info ol Parsing dependencies info ol No compile options found. Concatenating 333 sources 2014-10-23 11:58:10,434 build/ol-debug.js: uncompressed: 3276814 bytes 2014-10-23 11:58:10,436 build/ol-debug.js: compressed: 603658 bytes, (saved 81.58%)
Sólo busca en el directorio «build» por las versiones de «debug» y «compressed».
Referencias:
- https://github.com/openlayers/ol3/blob/master/CONTRIBUTING.md
- http://gis.stackexchange.com/questions/93477/build-openlayers-3-on-windows
- http://www.spatially-oriented.com/blog/2013/12/13/building-openlayers-3-on-windows/
- https://github.com/openlayers/ol3/issues/2100
- https://github.com/openlayers/ol3/issues/2844
Buenas, has probado con la última versión? He seguido tu guía y no me compila :/
Muchas gracias de antemano.
Perdona la tardanda… no, no he probado la última. Seguro que tiene otros «secretos».
Pero, ¿qué error te da?