惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
V
V2EX
B
Blog RSS Feed
有赞技术团队
有赞技术团队
博客园 - Franky
美团技术团队
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
云风的 BLOG
云风的 BLOG
L
LangChain Blog
GbyAI
GbyAI
The Cloudflare Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
博客园 - 【当耐特】
The Register - Security
The Register - Security
大猫的无限游戏
大猫的无限游戏
D
Docker
Vercel News
Vercel News
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
博客园_首页
A
About on SuperTechFans
J
Java Code Geeks
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
Recent Announcements
Recent Announcements
G
Google Developers Blog
小众软件
小众软件
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
F
Full Disclosure
Jina AI
Jina AI
H
Help Net Security

博客园 - 白亚伟

如何在快速迭代开发中写清楚需求,提高与软件工程师的沟通效率 Tomcat8.5.56配置多个服务 PowerDesign设置列名与表名的大小写规则 Nunit在VS2010加载不了程序集的解决办法 ArcGIS JavaScript API本地部署离线开发环境 读《敏捷个人-认识自我,管理自我》之学习 读《敏捷个人-认识自我,管理自我》之Scrum的核心价值观 读《敏捷个人-认识自我,管理自我》之责任 温习计算机基础的好去处--网易公开课 WIN7下.Net开发遇到的又一问题:HTTP 错误 500.19 - Internal Server Error,无法访问请求的页面,因为该页的相关配置数据无效。 IIS7下安装.net1.1 年终了,总结一下 VS2003出现ASP.NET版本不匹配,解决方法 CSLA中的连接管理器ConnectionManager CSLA中业务层事务的实现 CSLA.NET权限规则的困惑 转载:提升SQL Server程序员工作效率的几个技巧 svn提交时设置文件类型过滤 .net showModalDialog传递大对象时,ie出错自动关闭,求助
SuperMap实现2.5维地图的热区功能
白亚伟 · 2011-12-08 · via 博客园 - 白亚伟

  E都市、都市圈所谓的3维地图,其实是伪3维的,因为我们只能看到1个建筑物的3个面,且不能旋转,准确来说连2.5维都算不上,这里权且称做2.5维。当然出现这种局面也是受技术所限,要是3维的地图跑在互联网上,那对网速的客户端的机器要求都是很高的。当然,2.5的地图也为我们提供了2维地图不能比的便捷。

  E都市中鼠标在建筑物上移过时的高亮区域,即热区功能,如何用超图的技术实现,讲述下我的步骤和方法。

  1、制作2.5维图片。使用SuperMap object的“地图缓存”功能,将需要制作图片的区域出图,图片大小可定为4000*4000,以此图片作为底图,建模并渲染成图片。

  2、在SuperMap object中将渲染好的图片导入成影像数据集。

  3、用配准功能对导入的影像数据集进行配准,配准后,影像数据集即有了坐标信息,初始的影像只是图片信息,即长和宽。

  4、将配准后的影像数据集加入地图,再新建一个面数据集Region01,并加入地图。

  5、在地图中编辑面图层Region01@china,绘制建筑物的轮廓,并在面数据集中记录建筑物的名称、位置等自然信息。

  6、在地图中将Region01@china设为不可见,并保存地图,这样地图文件就制作完成了。

  7、现在就开始写代码了,使用SuperMap IS .NET的Ajaxscript技术实现。

  8、当地图加载到一定的比例时,使用map.GetQueryManager().QueryByRect()方法查询当前地图窗口范围内的Region01@china数据,记得设置queryParam.returnShape = true;

  9、循环返回的记录,创建SuperMap.IS.Geometry()的实例objGeo,读取面对象的shape属性添加到objGeo的points中,使用map.CustomLayer.InsertGeometry()方法将objGeo插入几何对象。注意,些几何对象是透明样式的面对象,要用到InsertGeometry()方法的OnClick事件,onMouseOver事件,onMouseOut事件。

  10、OnClick事件自己写了,主要是弹出建筑物的信息窗口。

  11、onMouseOver事件,var objGeo = map.CustomLayer.GetGeometry(e.ids[0]);取得插入的几何对象,并根据objGeo坐标信息使用map.CustomLayer.InsertPolygon()方法插入一个面对象,此面对象的样式为有边线且填充色半透明。

  12、onMouseOut事件,使用map.CustomLayer.RemovePolygon()方法移除上步骤中插入的面对象。在上步骤中插入的面对象id不变,即地图中的面对象不会超过1个。

  这12个步骤即完成了2.5维地图的热区功能,只要样式设的恰当,图片做的精美,完全可以和商业地图相媲美。

  还有1个问题没有解决,即45度斜视角的问题,E都市3维地图的正北方指向了屏幕的右上角,这样实现45度斜视角,但是如果在SuperMap object中将地图旋转45度的话,整个地图的GPS坐标就会发生变化,还请高手指教。

  此实现方法如有问题,欢迎拍砖。有建议,请留言,吾当虚心请教。

  欢迎转载,请注明出处http://www.cnblogs.com/brawei