2012-07-06 11 views
6

He configurado mi propio servidor OSM para proporcionar mosaicos de mapas para usar en una aplicación. Para la aplicación utilizo OpenLayers y llegué a un problema extraño cuando transferí el código de slippymap a mi aplicación. Básicamente utilizo el mismo código, y para las fichas locales configuro la url de mi servidor de mosaico.Los mosaicos del mapa no se muestran (todos de color rosa) en Firefox con OpenLayers y el servidor OSM propio

El problema es que al cambiar a la capa local solo veo la capa rosa del mapa, pero el atributo src de la etiqueta de imagen carga la ficha real. Intenté con Firebug quitar la capa rosa, ¡pero detrás de ella no hay ninguna imagen! Al copiar el URL del atributo src de la etiqueta img se abre el mosaico como una imagen.

Probé esto con Chrome y la capa Local está funcionando, en IE 7,8,9 también. El problema es solo con FF y sospecho algo con OpenLayers, pero no estoy seguro de qué. La capa de Mapnik funciona y muestra mosaicos en todos los navegadores. Usando HTML5 por cierto.

Se agradecen todas las ideas o sugerencias.

Respuesta

11

Hay otra solución que no requiere agregar encabezados CORS del lado del servidor. Es necesario proporcionar una opción de "tileOptions" a la configuración de la capa, así:

var layer = new OpenLayers.Layer.OSM("layer name", [urls], { 
    "tileOptions": { 
     "crossOriginKeyword": null 
    } 
}); 

Los OpenLayers Docs para Layer.OSM y Tile.Image le dice cómo hacer esto, pero no hay mención al hecho de que el defecto puede causar problemas en Firefox.

+1

Le estoy marcando la respuesta como aceptada, ya que me gusta más la solución. ¡Gracias! – kode

4

Hm, casi lo adivino. Era una configuración de encabezado Apache que permite la solicitud entre dominios para los recursos proporcionados. Aquí hay más información para los curiosos https://developer.mozilla.org/en/http_access_control

Ésta es la configuración de cabecera, incluirlo en < Directorio>, < Localización> o archivo .htaccess y compruebe que ha habilitado mod_headers.

Header set Access-Control-Allow-Origin * 
+1

Para cualquier otra persona que haya encontrado esta página con la misma pregunta ("¿Por qué solo estoy obteniendo fichas de color rosa?") Mientras mira la página de prueba que proporciona el paquete de (http://switch2osm.org/serving-tiles/building- a-tile-server-from-packages /), se deben tener en cuenta dos cosas: 1) Haz lo que dice Kode arriba. 2) abra la página de muestra (/var/osm/slippymap.html) en su editor preferido, y cambie el dominio en la URL que se encuentra en la línea 44. Este paso solo es necesario si está planeando ver la página de muestra en otra computadora (como localhost no funcionará). Gracias por la ayuda Kode! – Axle

Cuestiones relacionadas