我已经设置了自己的OSM服务器,用于提供在应用程序中使用的地图图块。对于应用程序,我使用OpenLayers,并在将代码从slippymap移植到我的应用程序时出现了一个奇怪的问题。基本上我使用相同的代码,对于本地磁贴,我设置了我的磁贴服务器的URL。
问题是当切换到Local图层时我只看到地图的粉红色图层,但图像标记的src属性会加载实际的图块。我尝试使用Firebug去除粉红色层,但在它后面没有图像!从img标签的src属性中复制url会将图块打开为图像。
尝试使用Chrome,本地图层正在运行,在IE 7,8,9中也是如此。问题只出在FF和我怀疑OpenLayers的东西,但不知道是什么。 Mapnik层正在工作并在所有浏览器上显示切片。顺便使用HTML5。
感谢任何想法或提示。
答案 0 :(得分:11)
还有另一种解决方案,不需要在服务器端添加CORS头。您需要为图层配置提供“tileOptions”选项,如下所示:
var layer = new OpenLayers.Layer.OSM("layer name", [urls], {
"tileOptions": {
"crossOriginKeyword": null
}
});
Layer.OSM和Tile.Image的OpenLayers文档告诉您如何执行此操作,但没有提及默认情况下可能会导致Firefox出现问题。
答案 1 :(得分:4)
这是标题设置,将其包含在< Directory>,< Location>或.htaccess文件并检查您是否启用了mod_headers。
Header set Access-Control-Allow-Origin *