MapXtrem + Asp.net 地图随窗体改变大小
在B/S框架下,MapXtreme都是基于图片的,也就是说在客户端显示的地图实际上都是一张图片。
地图控件 <cc1:MapControl ID="MapControl1" runat="server" Width="" Height=""/>
在调试模式下,编译后的地图控件
<span id="MapControl1" style="display:inline-block;height:600px;width:800px;"><img width="800px" height="600px" alt=""
src="MapController.ashx?Command=GetMap&Width=800&Height=600&ExportFormat=WindowsPng&Ran=0.00238378299511214"
id="MapControl1_Image" /><script language="javascript" type="text/javascript">
var MapControl1Me = document.getElementById('MapControl1_Image');
MapControl1Me.mapAlias= '';
MapControl1Me.exportFormat= 'WindowsPng';
编译后的地图控件分为三部分:<span><img><script>。通过编译后的控件我们就很清楚接下来该如何进行设置。
<%--地图大小随窗体大小改变--%>
<script type="text/javascript">
//窗体大小发生改变时触发该事件
window.onresize = ChangeMapSize; //设置地图大小
function ChangeMapSize()
{
var winWidth,winHeight;
//获取窗口宽度
if (window.innerWidth)
winWidth = window.innerWidth;
else if ((document.body) && (document.body.clientWidth))
winWidth = document.body.clientWidth;
//获取窗口高度
if (window.innerHeight)
winHeight = window.innerHeight;
else if ((document.body) && (document.body.clientHeight))
winHeight = document.body.clientHeight; //通过深入Document内部对body进行检测,获取窗口大小
if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)
{
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
} var mapImage = document.getElementById("MapControl1_Image");
if(mapImage != null)
{
//第一步设置<img>控件的大小
mapImage.width = winWidth;
mapImage.height = winHeight; //第二部设置图片的大小
//对MapXtreme的Web应用稍微有些了解的应该清楚
//客户端实际上是通过下面的浏览器从服务器获取图片的
//以下的相关参数例如width和height是用来设置图片大小的
var url = "MapController.ashx?Command=GetMap" + "&Width=" + winWidth + "&Height=" + winHeight +
"&ExportFormat=" + mapImage.exportFormat + "&includeBorder=false&Ran=" + Math.random();
mapImage.src = url;
} //第三步设置<span>控件大小
var mapControl = document.getElementById("MapControl1");
if(mapControl != null)
{
mapControl.style.width = mapImage.width + 'px';
mapControl.style.height = mapImage.height + 'px';
}
}
</script>
可根据需要考虑是否在添加<body onload="ChangeMapSize();">。
MapXtrem + Asp.net 地图随窗体改变大小的更多相关文章
- Qt 无边框窗体改变大小 完美实现(全部自己实现)
近期,做项目用到无边框窗体,令人蛋疼的是无边框窗体大小的改变要像右边框那样,上下左右四周,而且要流畅. 网上也找了些代码,发现居然还要连接到windows事件,这显然不合常理,后来自己新建了demo, ...
- Qt 无边框窗体改变大小 完美实现
近期,做项目用到无边框窗体,令人蛋疼的是无边框窗体大小的改变要像右边框那样,上下左右四周,而且要流畅. 网上也找了些代码,发现居然还要连接到windows事件,这显然不合常理,后来自己新建了demo, ...
- C#控件根据窗体改变大小
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- winform无边框窗体更改大小
实现方式一: const int HTLEFT = 10; const int HTRIGHT = 11; const int HTTOP = 12; const int HTTOPLEFT = 13 ...
- C#手动改变自制窗体的大小
Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data ...
- C# 无边框窗体移动和改变大小的实现
自己给软件做的皮肤,将窗体设为无边框后,想要其具有正常窗体的移动和改变大小功能,以下代 码可以实现.... //需添加using System.Runtime.InteropServices; [Dl ...
- WPF 窗体中的 Canvas 限定范围拖动 鼠标滚轴改变大小
xaml代码: <Canvas Name="movBg"> <Canvas.Background> <LinearGradientBrush EndP ...
- 黄聪:C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) (转)
一.各种旋转.改变大小 注意:先要添加画图相关的using引用. //向右旋转图像90°代码如下:private void Form1_Paint(object sender, System.Wind ...
- C# (GDI+相关) 图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) (转)
C#图像处理 (各种旋转.改变大小.柔化.锐化.雾化.底片.浮雕.黑白.滤镜效果) 一.各种旋转.改变大小 注意:先要添加画图相关的using引用. //向右旋转图像90°代码如下 ...
随机推荐
- Linux学习笔记——怎样在交叉编译时使用共享库
0.前言 在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如: [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...
- 接口自动化测试:参数化封装(excel文件读取)
log4j.properties文件配置 log4j.rootLogger = DEBUG,stdout,F log4j.appender.stdout = org.apache.log4j.Cons ...
- MySQL的备份与还原
原文:MySQL的备份与还原 MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Win32下MySQL的备份与还原 1.1 备份 开始菜单 | 运行 | c ...
- EditPlus仿Sublime配色方案(三种任你选择)
[Options] Placement=2C00000002000000030000000083FFFF0083FFFFFFFFFFFFFFFFFFFFEA000000EE000000D6050000 ...
- 快速构建Windows 8风格应用3-打包发布应用
原文:快速构建Windows 8风格应用3-打包发布应用 本篇博文主要介绍如何打包应用程序,成功后如何部署应用程序,最后介绍如何发布应用程序到应用商店中. 如何打包Windows 8风格应用程序呢? ...
- 安装Visual Studio 2010 - 初学者系列 - 学习者系列文章
本文讲述如何安装Visual Studio 2010开发工具. 首先,通过下列地址获取Visual Studio 2010的副本 1.开始页面 2.欢迎页 3.这里选择 自定义 ,选择安装路径 4.这 ...
- onsite
领英.脸书面试以及onsite小记(北美) 最近两个月忙于找工作,投了不少简历,比较牛逼的公司里面就领英和脸书理我了,都是同学朋友内推的功劳.没想到自己也比较争气,一路杀到了最后一轮,拿到了两家的 ...
- Asp.Net MVC页面静态化功能实现二:用递归算法来实现
上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net ...
- 读书笔记—CLR via C#同步构造28-29章节
前言 这本书这几年零零散散读过两三遍了,作为经典书籍,应该重复读反复读,既然我现在开始写博了,我也准备把以前觉得经典的好书重读细读一遍,并且将笔记整理到博客中,好记性不如烂笔头,同时也在写的过程中也可 ...
- 关于TD邮件功能不能发到认证邮箱的解决之法
[原创] 关于TD邮件功能不能发到认证邮箱的解决之法 认证邮箱, 邮件服务器, 用户, 邮件系统 鉴于不少同行询问TD发邮件的问题,今天重新更新一下说明 解决问题的原则如下一.在TD服务器上安装一个邮 ...