gpt4 book ai didi

openlayers - 将 openlayers 与本地 basemap 一起使用?

转载 作者:行者123 更新时间:2023-12-02 07:28:42 26 4
gpt4 key购买 nike

“OpenLayers 库提供了一个 JavaScript API,可以轻松地将各种来源的 map 整合到您的网页或应用程序中。”但是,通过扫描文档,各种来源似乎仅包括基于网络的地球 map 提供商。

是否可以使用 OpenLayers 在本地存储的 basemap 之上显示要素,例如海图(例如 http://www.charts.noaa.gov/InteractiveCatalog/nrnc.shtml?rnc=12280)或具有人工笛卡尔坐标的任意(非地球)光栅图像?

--编辑--

以下页面显示本地存储的图像,与 documentation 相反这表示图像必须可以通过网络访问。但是,有没有一种方法可以将多个图像文件用作图 block ,而不是单个文件?

<html>
<head>
<title>OpenLayers Example</title>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
</head>
<body>
<div style="width:640px; height:480px; border:3px solid" id="map"></div>
<script defer="defer" type="text/javascript">
var options = {
maxResolution: 10,
units: 'm',
resolutions: [10, 5, 2, 1, .5],
};
var map = new OpenLayers.Map('map', options);
var extent = new OpenLayers.Bounds(-4824, -3294, 4824, 3294);
var size = new OpenLayers.Size(4824, 3294);
var img = new OpenLayers.Layer.Image( "Basemap",
"maps/map0.jpg", extent, size, {layers: 'basic'} );
map.addLayer(img);
map.zoomToMaxExtent();
</script>
</body>
</html>

最佳答案

有一个例子here在本地使用 OpenStreetMap 瓦片,而不直接使用 http。显然,您需要将您的图 block 设置为 XYZ 格式才能使其正常工作。这是 source对于 OSM 层。每个图 block 的 xyz 源自 OpenLayers.Layer.XYZ ,当然,它是为简单性和全局覆盖而设计的。但是,您可以使用自己的坐标系轻松创建自己的图层,以类似的方式工作。

从加载的角度来看,相关行是:

 var newLayer = new OpenLayers.Layer.OSM("Local Tiles", 
"tiles/${z}/${x}/${y}.png",
{numZoomLevels: 19,
alpha: true,
isBaseLayer: false}
);

注意:我发现,一般来说,示例和源代码是比文档更好的信息来源。我这么说并没有批评,与大多数开源项目一样,OpenLayers 的开发人员资源有限,所以仅仅因为没有任何文档记录,并不意味着它不能完成。

关于openlayers - 将 openlayers 与本地 basemap 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com