ArcGIS API for Silverlight 使用GeometryService求解线与线的交点
///画线
void btn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Button btn = sender as Button;
var geometry = btn.Tag as ESRI.ArcGIS.Client.Geometry.Polyline;
//存储线要素的集合
List<ESRI.ArcGIS.Client.Geometry.Polyline> polyLineListGrid = new List<ESRI.ArcGIS.Client.Geometry.Polyline>();
List<ESRI.ArcGIS.Client.Geometry.Polyline> polyLineListriver = new List<ESRI.ArcGIS.Client.Geometry.Polyline>();
polyLineListGrid.Add(geometry as ESRI.ArcGIS.Client.Geometry.Polyline);
geometryService.TrimExtendAsync(polyLineListGrid, CenterGraphic.Geometry as ESRI.ArcGIS.Client.Geometry.Polyline, CurveExtension.DefaultCurveExtension);
geometryService.TrimExtendCompleted += geometryService_TrimExtendCompleted;
}
///执行分析
void geometryService_TrimExtendCompleted(object sender, GraphicsEventArgs e)
{
MapPoint point = null;
foreach (Graphic g in e.Results)
{
if (g.Geometry.Extent != null)
{
glayer.Graphics.Clear();
layer.Graphics.Clear();
var pline = g.Geometry as ESRI.ArcGIS.Client.Geometry.Polyline;
//Graphic gg = new Graphic()
//{
// Geometry = pline,
// Symbol = new LoadMapResource().GetSymbolByKey("DrawObjectLineSymbol") as LineSymbol
//};
//glayer.Graphics.Add(gg);
var gline = CenterGraphic.Geometry as ESRI.ArcGIS.Client.Geometry.Polyline;
var len1 = GetMinDistance(gline.Paths[0][0], gline.Paths[0][gline.Paths[0].Count - 1], pline.Paths[0][0]);
var len2 = GetMinDistance(gline.Paths[0][0], gline.Paths[0][gline.Paths[0].Count - 1], pline.Paths[0][pline.Paths[0].Count - 1]);
if (len1 > len2)
{
point = CreateMapPoint(pline.Paths[0][pline.Paths[0].Count - 1].X, pline.Paths[0][pline.Paths[0].Count - 1].Y);
}
else
{
point = CreateMapPoint(pline.Paths[0][0].X, pline.Paths[0][0].Y);
}
AddPointGraphic(point);
}
}
}
//由X,Y构造一个点
public MapPoint CreateMapPoint(double x, double y)
{
return new MapPoint(x, y);
}
//将一个点添加到Layer中
public void AddPointGraphic(ESRI.ArcGIS.Client.Geometry.MapPoint point)
{
Graphic g = new Graphic()
{
Geometry = point,
Symbol = new LoadMapResource().GetSymbolByKey("DrawObjectPointSymbol") as MarkerSymbol,
};
glayer.Graphics.Add(g);
}
ArcGIS API for Silverlight 使用GeometryService求解线与线的交点的更多相关文章
- ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式
原文:ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式 <Grid x:Name="LayoutRoot" Background=& ...
- ArcGIS API for Silverlight 点沿着线流动
原文:ArcGIS API for Silverlight 点沿着线流动 概述 前段时间做了一个项目,要求是有一些电力输送线,电力输送线或者石油管道都是有流动方向的,用户想做一个动态效果来模拟电力的输 ...
- ArcGIS API for Silverlight开发入门
你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击 ...
- ArcGIS API for Silverlight实现地图测距功能
原文:ArcGIS API for Silverlight实现地图测距功能 问题:如何实现地图测距功能? 地图工具栏 <Grid x:Name="gToolMenu" Hei ...
- 扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注
原文 http://blog.csdn.net/esricd/article/details/7587136 在ArcGIS API for Silverlight/WPF中原版的TextSymbol ...
- 使用ArcGIS API for Silverlight + Visifire绘制地图统计图
原文:使用ArcGIS API for Silverlight + Visifire绘制地图统计图 最近把很久之前做的统计图又拿出来重新做了一遍,感觉很多时候不复习,不记录就真的忘了,时间是最好的稀释 ...
- 使用ArcGIS API for Silverlight实现地形坡度在线分析
原文:使用ArcGIS API for Silverlight实现地形坡度在线分析 苦逼的研究生课程终于在今天结束了,也许从今以后再也不会坐在大学的课堂上正式的听老师讲课了,接下来的时间就得开始找工作 ...
- ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)
最好的学习资料ArcGIS api fo silverlight官网:http://help.arcgis.com/en/webapi/silverlight/samples/start.htm 一. ...
- ArcGIS API for Silverlight动态标绘的实现
原文:ArcGIS API for Silverlight动态标绘的实现 1.下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.dll 其下载地 ...
随机推荐
- Android 在Service中弹出对话框
1.在Androidmanifest.xml中插入 <uses-permission android:name="android.permission.SYSTEM_ALERT_WIN ...
- 深入理解DOM事件机制系列第一篇——事件流
× 目录 [1]历史 [2]事件冒泡 [3]事件捕获[4]事件流 前面的话 javascript操作CSS称为脚本化CSS,而javascript与HTML的交互是通过事件实现的.事件就是文档或浏览器 ...
- 关于SubSonic3.0生成的表名自动加复数(s)的“用户代码未处理SqlException,对象名'xxxs'无效”异常处理
使用SubSonic3.0模版生成时,同2.2版本一样,都会自动在一些类似数据库要用到的关键后面加要s(复数),这里也是3.0的一个小Bug,在查询时由于插件并没有完全的去掉s,所以会产生“用户代码未 ...
- 项目安排(离散化+DP)
题目来源:网易有道2013年校园招聘面试二面试题 题目描述: 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个项目后,拿到报酬都是不同的 ...
- c++之字符型中的特殊字符回车符
1.字符型的应用之强制类型转换: #include<iostream> using namespace std; int main() { ;i<;i++) { cout<&l ...
- HTML5+CSS3实现图片可倾斜摆放的动画相册效果
先看看效果:其中鼠标悬浮在图片上会有动态效果图 直接上代码: css文件 @CHARSET "UTF-8"; *{ padding:0px; margin:0px; } div{ ...
- 【原创】新手入门一篇就够:从零开发移动端IM
一.前言 IM发展至今,已是非常重要的互联网应用形态之一,尤其移动互联网时代,它正以无与论比的优势降低了沟通成本和沟通代价,对各种应用形态产生了深远影响. 做为IM开发者或即将成为IM开发者的技术人员 ...
- Js运动框架
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成
前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能.由于在 09 年最初设计时,ORM 部分的设计并不是最重要 ...
- 【原创】kafka server源代码分析(一)
这个是Kafka server的核心包,里面的类也很多,我们还是一个一个分析 一.BrokerStates.scala 定义了目前一个kafka broker的7中状态 —— 1. NotRunni ...