想利用 OpenLayers 为基础 写一个 地图浏览器,看到OpenLayers支持很多的地图范围,但好像对于切片的没有明确支持,查了好久,发现可以重写TMS,目前碰到一个问题,不知道怎样才能支持像素坐标
<SCRIPT LANGUAGE="JavaScript">
var map;
function get_imap_url (bounds) {//我想根据这里的值,得到地图的像素坐标不知道,怎么转换?请高人指教
var res = this.map.getResolution();
var x = Math.round ((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
var y = Math.round ((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
var z = this.numZoomLevels - this.map.getZoom();
……
return url + path;
}
function init()
{
map = new OpenLayers.Map ("map", {
controls:[
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.MouseDefaults(),
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.PanZoomBar()], maxScale: 650, minScale: 10400, numZoomLevels: 5} );
myHome = new OpenLayers.Layer.TMS(
"[email protected]",
"http://localhost:8080/map/",
{type:'png', getURL: get_imap_url} );
map.addLayers([myHome]);
}
</SCRIPT>
问题:
1.get_imap_url 中的参数 bounds 具体代表什么,在那里初始化了,初始化后的内容是什么?
2.this.map.getResolution() 什么意思?返回结果表示什么
3.在get_imap_url方法中 如何转换像素坐标???
请高人指点
------解决方案--------------------
谁说的切片不支持?
看看worldwind.html和对应的js吧