public MapInfo.Geometry.Geometry DrawSector(double x, double y, int middle, int angle, double radius)
{
if ((angle == 0) || (radius == 0))
return null;
MapInfo.Geometry.DPoint center = new MapInfo.Geometry.DPoint(x, y);
//创建一段弧线
double beginAngle, endAngle;
if (middle < 90)
{
beginAngle = 90 - middle - angle / 2;
endAngle = 90 - middle + angle / 2;
}
else if (middle == 90)
{
beginAngle = 360 - angle / 2;
endAngle = angle / 2;
}
else if (middle == 360)
{
beginAngle = 0;
endAngle = 360;
}
else
{
beginAngle = 450 - middle - angle / 2;
endAngle = 450 - middle + angle / 2;
}
MapInfo.Geometry.LegacyArc sector = new LegacyArc(map.GetDisplayCoordSys(), center, radius, radius,
MapInfo.Geometry.DistanceUnit.Kilometer, MapInfo.Geometry.DistanceType.Spherical, beginAngle, endAngle);
MultiCurve mc = sector.CreateMultiCurve(100);
MapInfo.Geometry.DPoint[] tmpPoints = mc[0][0].SamplePoints();
MapInfo.Geometry.DPoint[] dPoints = new MapInfo.Geometry.DPoint[3];
dPoints[0] = mc[0].EndPoint;
dPoints[1] = new MapInfo.Geometry.DPoint(x, y);
dPoints[2] = mc[0].StartPoint;
MapInfo.Geometry.DPoint[] mPoints = new MapInfo.Geometry.DPoint[tmpPoints.Length - 1 + 3];
for (int i = 0, j = 0; i < tmpPoints.Length - 1 + 3; i++)
{
if (i < tmpPoints.Length - 1)
mPoints[i] = tmpPoints[i];
else
mPoints[i] = dPoints[j++];
}
MapInfo.Geometry.MultiPolygon mp = new MultiPolygon(map.GetDisplayCoordSys(), CurveSegmentType.Linear, mPoints);
mp.EditingComplete();
return mp;
}
{
if ((angle == 0) || (radius == 0))
return null;
MapInfo.Geometry.DPoint center = new MapInfo.Geometry.DPoint(x, y);
//创建一段弧线
double beginAngle, endAngle;
if (middle < 90)
{
beginAngle = 90 - middle - angle / 2;
endAngle = 90 - middle + angle / 2;
}
else if (middle == 90)
{
beginAngle = 360 - angle / 2;
endAngle = angle / 2;
}
else if (middle == 360)
{
beginAngle = 0;
endAngle = 360;
}
else
{
beginAngle = 450 - middle - angle / 2;
endAngle = 450 - middle + angle / 2;
}
MapInfo.Geometry.LegacyArc sector = new LegacyArc(map.GetDisplayCoordSys(), center, radius, radius,
MapInfo.Geometry.DistanceUnit.Kilometer, MapInfo.Geometry.DistanceType.Spherical, beginAngle, endAngle);
MultiCurve mc = sector.CreateMultiCurve(100);
MapInfo.Geometry.DPoint[] tmpPoints = mc[0][0].SamplePoints();
MapInfo.Geometry.DPoint[] dPoints = new MapInfo.Geometry.DPoint[3];
dPoints[0] = mc[0].EndPoint;
dPoints[1] = new MapInfo.Geometry.DPoint(x, y);
dPoints[2] = mc[0].StartPoint;
MapInfo.Geometry.DPoint[] mPoints = new MapInfo.Geometry.DPoint[tmpPoints.Length - 1 + 3];
for (int i = 0, j = 0; i < tmpPoints.Length - 1 + 3; i++)
{
if (i < tmpPoints.Length - 1)
mPoints[i] = tmpPoints[i];
else
mPoints[i] = dPoints[j++];
}
MapInfo.Geometry.MultiPolygon mp = new MultiPolygon(map.GetDisplayCoordSys(), CurveSegmentType.Linear, mPoints);
mp.EditingComplete();
return mp;
}
发表评论
-
mapxtreme添加标记和删除标记
2009-03-30 16:23 1837新增2个pointselectiontool, clientc ... -
添加数据库中的经纬度信息
2009-03-30 16:22 1793C# Code: 复制内容到剪贴板 代码: MapInfo ... -
MapXtreme 2005自定义图层控制代码(WEB)
2009-03-30 16:21 1589虽然MapXtreme 2005 6.7.1提供了图层控制的控 ... -
MapxTreme测试:绘制图标和文字标注
2009-03-30 16:19 3708代码: using System; using System ... -
mapxtreme 2004 改变feature颜色
2009-03-30 16:18 15961.C# code: 复制内容到剪贴板 代码: MapI ... -
MapxTreme2005地图打印
2009-03-30 16:18 1246MapxTreme2005地图打印 一、语言: c# net2 ... -
在C#应用中如何读取存在ORACLE(或SQL Server)中的MapInfo表
2009-03-30 16:17 1272using MapInfo.Data; ... -
MapXtreme 2005查找图元方法,web的
2009-03-30 16:16 1813先添加一个TextBox和 DropDownList控件 复 ... -
MapXtreme点取地图获得信息
2009-03-30 16:15 1917拖一个pointselectiontool到页面, 修改属性 ... -
MapXtreme查看整个地图的代码
2009-03-30 16:14 959Map map = mapControl1.Map; IMap ... -
MapXtreme 2005 鹰眼源代码
2009-03-30 16:13 1822研究了一段时间的MapXtreme2005 v6.6, 实现了 ... -
实现手动画线
2009-03-30 16:12 1272为了实现在地图上手动画线的功能,煞费了一翻苦心,不过最后实现的 ... -
Web页面中实现鼠标中键缩放
2009-03-30 16:11 1562在MapXtreme 2005中,在Windows应用程序中自 ... -
两种方法实现动态轨迹
2009-03-30 16:11 1402在GIS中,动态轨迹的实现是非常有用的,可用GPS定位,热点跟 ... -
总结查找图元的三种方法
2009-03-30 16:10 1267在MapXtreme 2005中,查找图元提供了非常多的方法, ... -
添加标注图层
2009-03-30 16:08 1202在MapXtreme 2005中添加标注图层是非常容易的,只要 ... -
向图层中添加线段
2009-03-30 16:07 961向图层中添加线段和向图层中添加点是一样的,其本质都是向图层中添 ... -
向图层中添加点
2009-03-30 16:06 1050在添加点之前先要在地图上创建一个临时图层,创建临时图层请参考《 ... -
mapxtreme2005 改变选中的图元样式
2009-03-30 16:05 1095MapInfo.Styles.CompositeStyle c ... -
Mapxtreme2005 两点之间画直线
2009-03-30 16:04 1175private void DrawLine(MapInfo.D ...
相关推荐
### MapXtreme2005开发指南 #### MapXtreme2005概述 MapXtreme2005是一款由PBMapInfoCorporation开发的地图制作和地理信息系统(GIS)应用软件,该软件提供了强大的地图绘制、地理编码、路径规划等功能,适用于Web与...
### MapXtreme2005 知识点解析 #### 概述 MapXtreme2005是一款由MapInfo Corporation开发的地理信息系统(GIS)软件开发工具包(SDK),版本号为6.5。它为开发者提供了一套全面的API,用于创建高度定制化的GIS应用...
mapxtreme2005 DevelopmentReference mapxtreme2005 开发帮助手册中文版
《MapXtreme2005_67开发手册》是专为软件开发者设计的一份详尽指南,旨在帮助他们理解和应用MapXtreme2005版本6.7的各项功能与特性。MapXtreme2005是一款由PB MapInfo Corporation(现隶属于FME)开发的GIS(地理...
MapXtreme 2005是MapInfo公司推出的一款基于位置的开发产品,它主要致力于为开发者提供一套全面的工具来构建和定制地图应用程序。该产品在2005年的版本中进行了诸多改进,使其在功能和性能上都有显著提升。 首先,...
### MapXtreme2005开发人员指南 #### 概述 《MapXtreme 2005 开发人员指南》是一本详细介绍MapXtreme 2005开发环境及其命名空间的手册。它旨在帮助开发人员了解如何使用MapXtreme 2005来开发与MapInfo强大的地图...
在.NET Framework 2008环境下,我们可以利用C#语言和MapXtreme的功能来实现地图的加载以及在图层上画线的操作。本文将详细讲解如何在MapXtreme图层上绘制线段,涉及的主要知识点包括地图对象的初始化、图层的管理、...
MapXtreme2005_DevGuide中文版
这个“mapxtreme2005-map-demo.rar”压缩包提供了一个基于 Visual Studio 2005 和 MapXtreme 2005 的小型演示程序,旨在帮助初学者理解和探索 WebGIS 的基本功能。 首先,让我们详细了解一下 MapXtreme 2005。这是...
MapXtreme 2005 是一款由 Autodesk 公司开发的专业地图应用程序开发工具,主要面向开发者,用于构建地理信息系统(GIS)和位置感知应用。MapXtreme 2005 开发指南(DevGuide)是为帮助开发者理解和使用这款产品而...
仅供个人学习使用,一切法律后果本人概不负责!
### MapXtreme 2005 技术手册知识点概览 #### 一、MapXtreme 2005 概述 - **版本信息**:MapXtreme 2005,版本号为6.7,是PB MapInfo Corporation发布的一款用于地理信息系统(GIS)开发的专业软件。 - **版权信息*...
《MapXtreme 2005 开发指南》是一份专为C#和VB开发者设计的详尽文档,旨在帮助他们充分利用MapXtreme 2005这一强大的地图开发工具。MapXtreme是杰仕登科技(GeoTango Inc.,后被Microsoft收购)推出的一款GIS(地理...
《基于VS2005与MapXtreme2005的地图应用开发实例解析》 在信息技术领域,地图服务已经成为不可或缺的一部分,尤其在地理信息系统(GIS)中扮演着重要角色。Visual Studio 2005(简称VS2005)作为微软推出的强大开发...
### 基于MapXtreme2005的WebGIS设计与实现 #### 一、引言 随着互联网技术的迅速发展,WebGIS(Web Geographic Information System)作为一种结合了GIS(Geographic Information System)技术和互联网技术的新型...
MapXtreme 2005 6.7.1破解文件,复制到*Common Files\MapInfo\MapXtreme\6.7.1文件夹下
MapXtreme 2005 v6.6是一款由杰仕登科技(Jasc Software)开发的专业地理信息系统(GIS)软件,它主要用于构建和管理地理数据,提供地图服务和地理信息解决方案。这款软件在2005年推出时,是GIS领域的先进工具,能够...
在本文中,我们将深入探讨如何使用C#编程语言与MapXtreme 2005进行集成,构建一个功能丰富的GIS(地理信息系统)系统。MapXtreme 2005是一款强大的地图开发工具,提供了丰富的API和控件,允许开发者创建具有地图基本...
mapxtreme2005中文开发手册1