Фрагменты карты не отображаются (все розовые) в Firefox с использованием OpenLayers и собственного сервера OSM

Я установил собственный сервер OSM для предоставления фрагментов карты для использования в приложении. Для приложения я использую OpenLayers и столкнулся со странной проблемой при переносе кода со слипа в мое приложение. В основном я использую тот же код, и для локальных плиток я настраиваю URL-адрес своего сервера плиток.

Проблема в том, что при переключении на локальный слой я вижу только розовый слой карты, но атрибут src тега изображения загружает фактический тайл. Я пробовал с помощью Firebug удалить розовый слой, но за ним нет изображения! Копирование URL-адреса из атрибута src тега img открывает плитку как изображение.

Пробовал это в Chrome, и локальный уровень работает, в IE 7,8,9 тоже. Проблема только с FF, и я подозреваю что-то с OpenLayers, но не уверен в чем. Слой Mapnik работает и показывает плитки во всех браузерах. Кстати, используя HTML5.

Любые идеи или подсказки приветствуются.


person kode    schedule 06.07.2012    source источник


Ответы (2)


Есть еще одно решение, которое не требует добавления заголовков CORS на стороне сервера. Вам необходимо указать параметр tileOptions для конфигурации слоя, например:

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

Документы OpenLayers для Layer.OSM и Tile. Изображение говорит вам, как это сделать, но не упоминается тот факт, что значение по умолчанию может вызвать проблемы в Firefox.

person Shawn Allen    schedule 12.07.2012

Хм, я почти догадываюсь. Это был параметр заголовка Apache, который разрешает междоменный запрос предоставленных ресурсов. Вот дополнительная информация о любопытном https://developer.mozilla.org/en/http_access_control

Это настройка заголовка. Включите его в файл ‹Directory>, ‹Location> или .htaccess и убедитесь, что у вас включен mod_headers.

Header set Access-Control-Allow-Origin *
person kode    schedule 06.07.2012
comment
Для всех, кто нашел эту страницу с тем же вопросом (почему я получаю только розовые плитки), глядя на тестовую страницу, предоставил пакет из (switch2osm.org/serving-tiles/) следует отметить две вещи: 1) Делайте то, что сказал Коде выше. 2) откройте образец страницы (/var/osm/slippymap.html) в предпочитаемом вами редакторе и измените домен в URL-адресе, указанном в строке 44. Этот шаг необходим только в том случае, если вы планируете просмотреть образец страницы на другой компьютер (как localhost работать не будет). Спасибо за помощь Коде! - person Axle; 29.10.2012