Openlayers geojson desde github

Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Openlayers geojson desde github

javi77_acdc
Buen dia amigos, tengo un GeoJson de puntos en un repositorio de GitHub. Con OpenLayers 2.11 como cliente el código que sigue funcionaba bien.
 
Al cambiar por OpenLayers 2.13.1 (como cdn y en local) dejó de funcionar.

var urlIngenios = 'https://raw.githubusercontent.com/transporte17/repo01/master/ingenios.geojson';

var ingeniosAzucareros = new OpenLayers.Layer.Vector("Ingenios Azucareros", {
                strategies: [new OpenLayers.Strategy.BBOX()],
                projection: WGS84,
                visibility: true,
                protocol: new OpenLayers.Protocol.HTTP({
                         url: urlIngenios,
                         format: new OpenLayers.Format.GeoJSON()
                 })
        });
map.addLayer(ingeniosAzucareros);


Hice una prueba con OL3, sorpresa ... ha vuelto a funcionar!!!.


var urlIngenios = 'https://raw.githubusercontent.com/transporte17/repo01/master/ingenios.geojson';

var ingeniosAzucareros = new ol.layer.Vector({
    source: new ol.source.Vector({
                url: urlIngenios
                format: new ol.format.GeoJSON()
    })
});

mapa.addLayer(ingeniosAzucareros);
 

La duda como hacer que me cargué los puntos con OL 2.13.1 ?. Por ahora no puedo migrar todo a ol3 y tampoco quiero volver a ol2 2.11 :(

Gracias de antemano.
Saludos
Javier Díaz

_______________________________________________
Spanish mailing list
https://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
Reply | Threaded
Open this post in threaded view
|

Re: Openlayers geojson desde github

martinmaximilianoflores
Reply | Threaded
Open this post in threaded view
|

Re: Openlayers geojson desde github

javi77_acdc
En Firefox:

Pedido de origen cruzado bloqueado: La política de mismo origen no permite leer el recurso remoto en https://raw.githubusercontent.com/transporte17/repo01/master/ingenios.geojson. (Razón: CORS preflight channel did not succeed).

Lo raro es que con la misma configuración, lo único que cambio es 2.13.1 por 2.11 y ahí si funciona. Con la versión 3 de openLayers también funciona.


La consola de Chrome me da algunas pistas mas:

XMLHttpRequest.js:220 OPTIONS https://raw.githubusercontent.com/transporte17/repo01/master/ingenios.geojson 400 (Bad Request)
fXMLHttpRequest_send @ XMLHttpRequest.js:220
cXMLHttpRequest.send @ XMLHttpRequest.js:262
(anonymous) @ Request.js:240
setTimeout (async)
issue @ Request.js:238
GET @ Request.js:319
llamar_editor @ grid_crurales_17_1_7.js:198
init @ panel_crurales_17_1_7.js:2194
(anonymous) @ ext-all-debug.js:190
call @ ext-all-debug.js:1547
setInterval (async)
me.delay @ ext-all-debug.js:1563
(anonymous) @ ext-all-debug.js:188
fire @ ext-all-debug.js:310
fireDocReady @ ext-all-debug.js:5091

caminos_rurales_17_1_7.php:1 Failed to load https://raw.githubusercontent.com/transporte17/repo01/master/ingenios.geojson: Response for preflight has invalid HTTP status code 400


VM6008:1 Uncaught SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at C.read (JSON.js:97)
    at handler (grid_crurales_17_1_7.js:192)
    at Object.runCallbacks (Request.js:287)
    at fXMLHttpRequest.request.onreadystatechange (Request.js:225)
    at fXMLHttpRequest.cXMLHttpRequest.dispatchEvent (XMLHttpRequest.js:333)
    at fReadyStateChange (XMLHttpRequest.js:357)
    at XMLHttpRequest._object.onreadystatechange (XMLHttpRequest.js:214)

2017-10-11 13:04 GMT-03:00 martinmaximilianoflores <[hidden email]>:
Y que error te da?



--
Sent from: http://osgeo-org.1560.x6.nabble.com/OSGeo-Spanish-Local-Chapter-f3736386.html
_______________________________________________
Spanish mailing list
https://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes


_______________________________________________
Spanish mailing list
https://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
Reply | Threaded
Open this post in threaded view
|

Re: Openlayers geojson desde github

martinmaximilianoflores
Raro, una solución que puede funcionar, para dejar de lado como OL maneja los
ajax request en esa version,es que hagas vos por ajax el request e
implementes algo asi:

function CargarCapa(str_geojson)
{
  var geojson_format = new OpenLayers.Format.GeoJSON();
  var ingeniosAzucareros = new OpenLayers.Layer.Vector();
  map.addLayer(ingeniosAzucareros);
  ingeniosAzucareros.addFeatures(geojson_format.read(str_geojson));
};

 var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200)
   {
    CargarCapa(this.responseText);
    }
  };
  xhttp.open("GET",
"https://raw.githubusercontent.com/transporte17/repo01/master/ingenios.geojson",
true);
  xhttp.send();

Lo que más ruido me hace es el "Uncaught SyntaxError: Unexpected end of JSON
input", como si el json no está bien definido, parece que usa  JSON.parse el
cual es bastante exigente, pero bueno...

Si el XMLHttpRequest trae bien formado el JSON(Fijate con un
alert(str_geojson)),el problema debe estar en el OpenLayers.Format.GeoJSON.

También según jsonlint.com el json esta perfecto.

Suerte.






--
Sent from: http://osgeo-org.1560.x6.nabble.com/OSGeo-Spanish-Local-Chapter-f3736386.html
_______________________________________________
Spanish mailing list
https://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
Reply | Threaded
Open this post in threaded view
|

Re: Openlayers geojson desde github

javi77_acdc
Buen dia, gracias por la respuesta Martín.
Te comento que para salir del paso (como decimos por estos pagos) lo "até con alambre".

Remplacé los archivos :

../lib/OpenLayers/Request.js

../lib/OpenLayers/Request/XMLHttpRequest.js

en la version 2.13.1 con los de mi "vieja" 2.11. Por ahora con esto se soluciono. Restaria revisar el código en ambos archivos para ver que cambió de una versión a la otra.
Mientras tanto me da tiempo  para probar tu sugerencia.

Gracias
Javier

El 14 de octubre de 2017, 11:32, martinmaximilianoflores <[hidden email]> escribió:
Raro, una solución que puede funcionar, para dejar de lado como OL maneja los
ajax request en esa version,es que hagas vos por ajax el request e
implementes algo asi:

function CargarCapa(str_geojson)
{
  var geojson_format = new OpenLayers.Format.GeoJSON();
  var ingeniosAzucareros = new OpenLayers.Layer.Vector();
  map.addLayer(ingeniosAzucareros);
  ingeniosAzucareros.addFeatures(geojson_format.read(str_geojson));
};

 var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200)
   {
    CargarCapa(this.responseText);
    }
  };
  xhttp.open("GET",
"https://raw.githubusercontent.com/transporte17/repo01/master/ingenios.geojson",
true);
  xhttp.send();

Lo que más ruido me hace es el "Uncaught SyntaxError: Unexpected end of JSON
input", como si el json no está bien definido, parece que usa  JSON.parse el
cual es bastante exigente, pero bueno...

Si el XMLHttpRequest trae bien formado el JSON(Fijate con un
alert(str_geojson)),el problema debe estar en el OpenLayers.Format.GeoJSON.

También según jsonlint.com el json esta perfecto.

Suerte.


_______________________________________________
Spanish mailing list
https://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes