Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openlayers 非网墨卡托投影中的XYZ_Openlayers - Fatal编程技术网

Openlayers 非网墨卡托投影中的XYZ

Openlayers 非网墨卡托投影中的XYZ,openlayers,Openlayers,我正在尝试将OpenLayers与XYZ tile服务器结合使用,该服务器可以处理非EPSG:3857投影中的图像。我定义了一个自定义平铺网格并将其分配给源。我的测试代码非常简单: proj4.defs( ‘EPSG:32628’, “+proj=utm+分区=28+基准面=WGS84+单位=m+无定义” ); ol.proj.proj4.寄存器(proj4); const tileGrid=新ol.tileGrid.tileGrid({ 范围:[166021.44,0.0534994.6693

我正在尝试将OpenLayers与XYZ tile服务器结合使用,该服务器可以处理非EPSG:3857投影中的图像。我定义了一个自定义平铺网格并将其分配给源。我的测试代码非常简单:

proj4.defs(
‘EPSG:32628’,
“+proj=utm+分区=28+基准面=WGS84+单位=m+无定义”
);
ol.proj.proj4.寄存器(proj4);
const tileGrid=新ol.tileGrid.tileGrid({
范围:[166021.44,0.0534994.669329005.18],
决议:[1441、720、360、180、90、45、22、11、5]
});
console.log(tileGrid);
变量层=[
新ol.layer.Tile({
source:new ol.source.OSM(),
}),
新ol.layer.Tile({
来源:new ol.source.XYZ({
网址:'http://127.0.0.1:3011/tile/imagery.tif/{z} /{x}/{-y}.png',
tileGrid:tileGrid,
预测:“EPSG:32628”
})
}),
];
变量视图=新的ol.view({
中间:[323982.0,1495745.0],
缩放:9,
预测:“EPSG:32628”
});
var map=新ol.map({
层:层,
目标:“地图”,
视图:视图,
});
但这似乎不起作用:图像没有显示在地图上,奇怪的是OpenLayers请求一些意外的平铺,如
4/3/67.png
。我说意外是因为Y坐标大于2^4。XYZ平铺与自定义投影的工作方式不同吗


我想做的有意义吗?请注意,在我的平铺方案中,一个像素的高度将比宽度小25倍,因为该方向的投影范围更大。

非标准平铺无法使用
{-y
}占位符。您应该将tilegrid中的
原点指定为[166021.44,0.0](否则将默认为右上角),并使用
tileUrlFunction
而不是
url
选项(此版本中的示例正确,v6文档的旧版本不正确)。谢谢。这似乎仍然要求y大于2^z的瓷砖。我想我真的误解了一些东西。XYZ在普通墨卡托上是不标准的:openlayer和传单对同一坐标使用了不同的XYZ(mod_tile不支持它)。这是我以前的帖子(在gis.SE中),所以我找到了
-y-1
。但是我没有进一步研究,事情可能已经改变了,
{-y
}占位符不适用于非标准tilegrid。您应该将tilegrid中的
原点指定为[166021.44,0.0](否则将默认为右上角),并使用
tileUrlFunction
而不是
url
选项(此版本中的示例正确,v6文档的旧版本不正确)。谢谢。这似乎仍然要求y大于2^z的瓷砖。我想我真的误解了一些东西。XYZ在普通墨卡托上是不标准的:openlayer和传单对同一坐标使用了不同的XYZ(mod_tile不支持它)。这是我以前的帖子(在gis.SE中),所以我找到了
-y-1
。但我没有进一步研究,事情可能已经改变了