2012-07-06 7 views
6

マップタイルをアプリケーションに使用するための独自のOSMサーバーを設定しました。アプリケーションの場合、私はOpenLayersを使用し、コードをslippymapからアプリケーションに移植したときに奇妙な問題に遭遇しました。基本的に私は同じコードを使用し、ローカルタイルの場合は私のタイルサーバーのURLを設定します。OpenLayersと独自のOSMサーバーを使用してFirefoxでマップタイルが表示されない(すべてピンク)

ローカルレイヤーに切り替えると、マップのピンクレイヤーしか表示されませんが、イメージタグのsrc属性によって実際のタイルが読み込まれるという問題があります。私はFirebugでピンクのレイヤーを削除しようとしましたが、その背後にはイメージがありません! imgタグのsrc属性からURLをコピーすると、画像としてタイルが開きます。

これをChromeに試してみて、ローカルレイヤーがIE 7,8,9でも動作しています。問題はFFだけであり、私はOpenLayersで何かを疑っていますが、何がわからないのでしょうか。 Mapnikレイヤーはすべてのブラウザでタイルを表示しています。 HTML5を途中で使用する

アイデアやヒントがあれば幸いです。

答えて

11

CORSヘッダーをサーバー側に追加する必要のない別の解決策があります。あなたはそうのように、層の設定に「tileOptions」オプションを提供する必要があります:

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

Layer.OSMTile.ImageためのOpenLayersをドキュメントは、これを行う方法を教えてくれますが、デフォルトを引き起こす可能性があるという事実の言及はありませんFirefoxの問題

+1

解決策がもっと好きなので、私は受け入れられたと答えています。ありがとう! – kode

4

私はほぼ正しいと思います。これは、提供されたリソースのドメイン間要求を可能にするApacheヘッダー設定でした。好奇心のためのより多くの情報がありますhttps://developer.mozilla.org/en/http_access_control

これはヘッダーの設定です<ディレクトリ>、<場所>または.htaccessファイルにあり、mod_headersが有効になっていることを確認してください。

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

テストページを見て、同じ質問(このページは「なぜ私はピンクのタイルのみを取得していますか」)があるこのページは、http://switch2osm.org/serving-tiles/building- a-tile-server-from-packages /)には、2つの注意点があります。 1)上記でKodeが述べたことを実行してください。 2)希望のエディタでサンプルページ(/var/osm/slippymap.html)を開き、44行目にあるurlのドメインを変更します。この手順は、サンプルページを見る場合のみ必要です(ローカルホストは動作しません)。 ヘルプありがとうございました! – Axle

関連する問題