想利用 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(
"My@home",
"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方法中 如何转换像素坐标???请高人指点,在线等待
<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(
"My@home",
"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方法中 如何转换像素坐标???请高人指点,在线等待
解决方案 »
- 一个GridView导出到Excel中的问题
- 在使用Pdfizer开源库,将html文件转化成pdf文档时,中文不支持?????
- DataGrid复选框的高亮显示
- 读文件乱码的问题?(OpenText方法)
- 还是关于在DataGrid里给删除按纽加提示。为什么连DataGrid外的“保存”按纽也把提示给加上了,请帮我看看代码。谢谢!
- 请教一下要自己开发一个万网的平台需要多少天的开发周期,能讨论一下么
- 为什么我这样写报错了
- 【web项目】读【类库项目】配置文件问题
- vs.net2003安装完了,怎么帮助用不了,请各位帮忙·谢谢!!!
- 學會了C#/ASP.NET又到那里找工作呀。
- asp.net 如何采集一个需要登录的页面
- FileUpLoad和UpdatePanel在一起使用得不到值
//所以 var lonlat = map.getLonLatFromPixel(e.xy);这里的转换是转换成了墨卡托坐标,
//只需要调用这个方法就可以将墨卡托坐标转换成经纬坐标了:
//transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
//transform(source, dest);第一个参数:源坐标系;第二个参数:目标坐标系。这样就解决了坐
position = position.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
position = position.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));