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

推荐订阅源

The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
量子位
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
D
Docker
罗磊的独立博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
云风的 BLOG
云风的 BLOG
IT之家
IT之家
MyScale Blog
MyScale Blog
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - Tony Wu

关于研究性和工程性 送出orkut邀请,当然如果需要gmail邀请,还有很多 原来好男人还真不容易做啊! 第一次上班吃便当 预测分析研究 地理信息系统应用于教育领域之查询功能 关于点相对于线的位置判定 <用演示说话>读书笔记 网络数据集的构建以及基于网络数据集的路径分析 天。鬼。法 开始在NEC做事,心情愉快 元月6日的回忆 关于大学 自己录了一首歌,嘻嘻 使用jxl读和写Excel文件 关于JSP发布地图服务 java的一些基本概念 .NET启动时,出现无法加载MSXML3.dll ArcIMS 开发学习笔记(一)
超图SuperMap Is.Net开发心得及一些问题
Tony Wu · 2005-10-22 · via 博客园 - Tony Wu
  • 客户端地图操作的地理坐标传递

         可以通过自定义Action事件获得,自定义Action事件封装好的参数ActionEventArgs中有MapCoods地理坐标数组,这个数组代表客户端在地图上的起始点、中间点和结束点的地理坐标。

  • 查询结果的地理坐标获得

          在通过MapControl.QueryBySQL等其它查询之后,将返回一个ResultSet结果集,通过这个结果集可以获得每一个地理空间实体的中心坐标和指定的返回属性值。Record具有Center字段和FieldValues字段,分别是地理中心坐标和指定返回值数组。

  • 临近查询

          所谓的临近查询就是指以某一点为中心查找周围感兴趣的空间实体。一般情况是输入中心地物名称,通过QueryBySQL()查询到这个物体的地理坐标,然后再通过QueryByDistance()查找周边地物。

  • 某一范围中的专题显示

          某一范围的专题显示就是说有时候要对用户指定的区域进行专题渲染,这种情况下首先是要确定用户指定的区域,然后确定专题图的相关字段和渲染方式,再通过Layer.DisplayFilter进行部分渲染。根据用户指定的区域获取到需要渲染的空间实体的某一属性值如“SmID”,以方便DisplayFilter设置条件;确定专题图的相关字段是需要注意到不同的图层类型(点、线、面)最好使用不同的专题渲染方式。

关于Distance
distance在SuperMap Is中表示的是以度为单位的地理距离,如果是平面坐标,可以根据比例尺进行直接转换,如1:5000的平面坐标地图(单位meter),5000米就相当于地图上面的1米。但是如果是经纬度坐标系,则需要进行转换。如WGS1984的经纬度坐标,1秒相当于33米,那么根据用户输入的以米为单位的平面距离转换成为distance的时候,应该是X/3600*33,因为1度等于3600秒。

关于专题图
根据我自己的开发经验,SuperMap IS.NET 5.0如果存在几个AppServer的话,很可能除了第一个AppServer能够出现专题图外,其余的都不行,这个应该是AppServer的问题,所以在制作专题图的时候,建议采用第一个AppServer。下面说明范围分段专题图的C#代码。

Layer objLayer=new Layer();
int layerCount=this.MapControl1Layers.Length;
for(int i=0;i<layerCount;i++)
{
if(this.MapControl1.Layers[i].Name.Equals(layername)
{
objLayer=this.MapControl1.Layers[i];
}
}

if(objLayer==null)
{
return;
}
if(objLayer.ThemeRange!=null)
{
objLayer.ThemeRange=null;
}
//最好同时去掉该图层已经存在的不相关的专题图
RangeTheme theme = objLayer.ThemeRange;
   theme.Valid = true;
   theme.Caption = "aaa";
   theme.Expression = "SmID";
   theme.BreakCount = 3;//表示分开的段数
   theme.BreakValues = new double[2];//断点数
   theme.BreakValues[0] = 50;
   theme.BreakValues[1] = 100;
   theme.Displays = new SuperMap.IS.Utility.Style[3];
   theme.Displays[0] = new SuperMap.IS.Utility.Style();
   theme.Displays[1] = new SuperMap.IS.Utility.Style();
   theme.Displays[2] = new SuperMap.IS.Utility.Style();
   theme.Displays[0].BrushColor = 65535;//BrushColor表示填充,所以最好面图层使用这种渲染方式
   theme.Displays[1].BrushColor = 255;
   theme.Displays[2].BrushColor = 16711680;
//Display还有BrushStyle,PenColor,PenStyle,SymbolSize,SymbolStyle等属性
   this.MapControl1.Update();

关于Pan的问题
如果存在多个AppServer,可能只有第一个AppServer的pan功能正常