SuperMap IS.NET保存地图之Ajax篇(转)
软件版本:SuperMap IS.NET 5.3.0.9628
问题源起:在SuperMap IS.NET 5.3中WebControl和AjaxControl分别提供了两组控件来实现地图的打印功能,分别名为PrintToolControl和MapPrintControl。两者配合即能实现地图控件(MapControl)内容打印和另存为图片。
在AjaxControl中,因为地图控件内容是由多个256*256px的图片组成,采用瓦片金字塔技术组织。所以地图控件显示的内容并不是一张完整的地图,所以也为保存当前地图提出了一个难题。
不是有控件吗?呵呵~的确有控件,不过控件存在以下问题:1.可能拖拽了PrintToolControl导致NullReferenceException;2.PrintToolControl能实例化,不过点击后无响应。
所以还得自己干,才能丰衣足食啊!
首先咱们采用AjaxControl的方法,用一个Button来实现保存地图,代码如下:
- protected void Button1_Click(object sender, EventArgs e)
- {
- MapParam param = MapControl1.GetCurrentMapParam();
- param.ReturnImage = true;
- param.Viewer = new PixelRect((int)MapControl1.Width.Value, (int)MapControl1.Height.Value);
- param.ViewBounds = new MapRect(MapControl1.ViewBounds.LeftBottom, MapControl1.ViewBounds.RightTop);
- //Response.Write(MapControl1.ViewBounds.LeftBottom.X.ToString());
- MapImage mi = MapControl1.GetMapImage(param, 100);
- if (mi != null)
- {
- Response.Write(mi.MapUrl); //输出地图控件图片地址
- }
- }
protected void Button1_Click(object sender, EventArgs e) { MapParam param = MapControl1.GetCurrentMapParam(); param.ReturnImage = true; param.Viewer = new PixelRect((int)MapControl1.Width.Value, (int)MapControl1.Height.Value); param.ViewBounds = new MapRect(MapControl1.ViewBounds.LeftBottom, MapControl1.ViewBounds.RightTop); //Response.Write(MapControl1.ViewBounds.LeftBottom.X.ToString()); MapImage mi = MapControl1.GetMapImage(param, 100); if (mi != null) { Response.Write(mi.MapUrl); //输出地图控件图片地址 } } 再采用AjaxScript脚本方式实现下(我更喜欢这个),后台发送一个xmlhttpRequest请求到服务器端的MapHandler,生成一张图片,并返回地图地址。
- // 保存当前地图
- function saveMap()
- {
- var param = new Object();
- param = MapControl1.GetMapParam();
- var pixelRect = MapControl1.GetSize();
- param.SetPixelRect(pixelRect);
- MapControl1.GetMapImage(param, onSaveMapComplete, onSaveMapError);
- }
- function onSaveMapComplete(URL)
- {
- if(URL != null)
- {
- if( URL.length > 0)
- {
- window.open(URL,'地图保存','menubar=yes,titlebar=yes,toolbar=no,scrollbars=no,location=no,status=no');
- }
- }
- }
- function onSaveMapError(responseText)
- {
- alert(responseText);
- }
// 保存当前地图 function saveMap() {var param = new Object();param = MapControl1.GetMapParam();var pixelRect = MapControl1.GetSize();param.SetPixelRect(pixelRect); MapControl1.GetMapImage(param, onSaveMapComplete, onSaveMapError); }function onSaveMapComplete(URL) {if(URL != null){if( URL.length > 0){window.open(URL,'地图保存','menubar=yes,titlebar=yes,toolbar=no,scrollbars=no,location=no,status=no');}} }function onSaveMapError(responseText) {alert(responseText); }
补充下,如果保存的地图需要打印,可以采用GetMapImageByDpi方法,并设定合适的Dpi即可。不过AjaxScript的GetMapImageByDpi方法的输入参数有误,大家稍微注意下!
据说控件的问题在5.3.2版本得以解决,咱们一起试目以待吧:)
SuperMap IS.NET保存地图之Ajax篇(转)相关推荐
- Cartographer使用篇:保存地图
工作环境: ubuntu16.04+ROS(Kinetic)+Cartographer-1.0.0 地图文件 .pbstream cartographer格式地图文件,本质上是一个压缩protobuf ...
- Unity TileMap 存档 保存地图
关注公众号,获取更多干货. 下面是正文: 最近在恶补Unity的一些模块,前几天朋友推荐我看一下Unity2017.2以上才支持的TileMap,他说用这个做2D关卡贼方便,所以我就去看了一眼,的确很 ...
- 地图构建两篇顶级论文解析
地图构建两篇顶级论文解析 一.基于声纳的密集水下场景重建 标题:Dense, Sonar-based Reconstruction of Underwater Scenes 作者:Pedro V. T ...
- openlayers入门开发系列之地图属性查询篇
本篇的重点内容是利用openlayers实现地图属性查询功能,效果图如下: 实现思路: 模糊查询点击事件 //模糊查询 $("#swatchQuery").bind("c ...
- AJAX框架简笔画图片教程,jquery 框架使用教程 AJAX篇
jquery 框架使用教程 AJAX篇 更新时间:2009年10月11日 14:47:26 作者: 正好项目中准备使用thickbox,于是干脆抛弃prototype.js,看起jquery.js ...
- 百度2012年新进本科技术类员工培训教材ajax篇
百度2012年新进本科技术类员工培训教材ajax篇 1. //告诉浏览器不要缓存数据 header("Cache-Control: no-cache"); //这里两句话很重要,第 ...
- 前端面试大全(Ajax篇——面试官这样问,你答得上来吗?)
目录 面试系列 内容介绍 1.Ajax 是什么? 如何创建一个Ajax? ①.Ajax ②.异步 ③.步骤 2.同步和异步的区别? ①.同步 ②.异步 3.如何解决跨域问题? 4.http状态码有那些 ...
- cartographer 用自己的机器人建图、保存地图
这两天跑了以下google的cartographer算法,效果不错,比gmapping效果要好. cartographer的安装网上很多教程,主要按照张明明的方法,https://github.com ...
- 百度地图总结第二篇--POI检索功能
简介: 目前百度地图SDK所集成的检索服务包括:POI检索.公交信息查询.线路规划.地理编码.行政区边界数据检索.在线建议查询.短串分享(包括POI搜索结果分享.驾车/公交/骑行/步行路线规划分享.反 ...
最新文章
- 浅析网站标题优化该如何进行?
- iOS消息推送机制原理与实现
- day3 程序流程控制
- trie树查找前缀串_Trie数据结构(前缀树)
- mysql 无法启动 查看原因_Mysql服务无法启动问题
- 重要的数据结构--队列(C语言实现)
- eclips 创建 maven项目
- springmvc json串的null值替换为空值
- 煤矿AI智能视频分析识别系统解决方案
- 23hh小说网——爬虫0.1python
- Html点击复制文本内容
- Android Audio音频系统之深入浅出
- TSC2004 电阻式触摸屏控制器驱动问题
- 网速监测-window小应用
- 张振民北京计算机专修学院,工行甘肃省分行张振民一行来校考察交流
- 统计学第一篇,均值、中位数、众数
- 想开服,又没有技术怎么办?传奇开服技术要学多久?开服技术好学吗
- [SDOI2008]山贼集团【树上背包+状压】
- 三十二楼层选几层最好_【高层住宅几层最好】33、32层高层住宅几层最好,26、18高层住宅几层最好-吉屋网知识专区...
- EXCEL-名称管理器
热门文章
- 大数据_Spark框架_快速上手_word count 案例分析---Spark工作笔记0005
- makefile工作笔记0002---gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化
- Netty工作笔记0051---Netty核心模块2
- 架构部署001---双机集群(HA)系统
- ASP.Net学习笔记007--ASP.Net Input版自增
- android学习笔记---48_实现软件国际化,实现文字国际化,和图片国际化
- Jonit Bayesian 的推导
- NLP之路-Deep Learning for NLP 文章列举
- Windows平台上安装搭建iPhone/iPad的开发环境
- 【10天基于STM32F401RET6智能锁项目实战第2天】GPIO与寄存器