c#+mapx 急,等待ing

303739466 2010-05-06 11:39:38
知道自己经纬度坐标,怎么在mapx中画点啊,求救各位高手啊?
...全文
90 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_guo 2012-08-01
  • 打赏
  • 举报
回复
/// <summary>
/// 画点
/// </summary>
/// <param name="mymap"></param>MapX控件
/// <param name="PT"></param>插入点
/// <param name="symbolName"></param>图元名称
/// <param name="symbolcolor"></param>标签颜色
/// <param name="BmpName"></param>图元图片
public CreatSymbol(AxMapXLib.AxMap mymap, Point PT, string symbolName, string symbolcolor, string BmpName)//
{
try
{
MapXLib.Style s = new MapXLib.StyleClass(); //创建图元
MapXLib.Feature FT = new MapXLib.FeatureClass();
s.SymbolType = 1;//符号类型
s.SymbolBitmapSize = publicVar.icosize;//设置位图符号大小
s.SymbolBitmapTransparent = true;//符号位图是否显示
s.SymbolBitmapName = BmpName; //符号位图名称
switch (symbolcolor) //符号位图颜色
{
case "Red":
{
s.TextFontColor = 255;
break;
}
case "Black":
{
s.TextFontColor = 0;
break;
}
case "Blue":
{
s.TextFontColor = 16711680;
break;
}
case "Green":
{
s.TextFontColor = 65280;
break;
}
}
if (!mymap.Layers.Item(1).Name.StartsWith("templayer"))
{
mymap.Layers.CreateLayer("templayer", null, 1, 64, mymap.NumericCoordSys);
mymap.Layers.Item(1).LabelProperties.Position = 3;

mymap.Layers.Item(1).AutoLabel = true;
mymap.Layers.Item(1).LabelProperties.Duplicate = true;
mymap.Layers.Item(1).LabelProperties.Overlap = true;
//mymap.Layers.Item(1).LabelProperties.Style.TextFont.Bold = true;
}
mymap.Layers.Item(1).LabelProperties.Style.TextFontColor = s.TextFontColor; //标签的颜色
mymap.Layers.Item(1).LabelProperties.Visible = publicVar.labelvisible;//标签是否可见

mymap.Layers.Item(1).LabelProperties.Style.TextFont.Size = publicVar.labelsize;//标签的大小
FT = mymap.FeatureFactory.CreateSymbol(PT, s);//创建点
FT.KeyValue = symbolName; //点值与符号名称相同
mymap.Layers.Item(1).AddFeature(FT, new RowValuesClass());//添加一行点
}
catch (Exception ex)
{
Console.WriteLine("CreatSymbol点:" + ex.Message);
}
}
gnimgnot 2010-05-06
  • 打赏
  • 举报
回复
我以前上学的时候倒是在家里写过一些C#+mapx的例子。
不过得晚上回家才能翻出来。
yangjinCK 2010-05-06
  • 打赏
  • 举报
回复
这个得看看
303739466 2010-05-06
  • 打赏
  • 举报
回复
这东西在c#上怎么也不出点实例,真郁闷啊
303739466 2010-05-06
  • 打赏
  • 举报
回复
我的mapx是5.0 我现在也是发了愁了,都不知道该怎么着手啊
cjcgy 2010-05-06
  • 打赏
  • 举报
回复
要看你是Mapx的哪个版本了。

几个版本差异很大。

我在家里还有一些当时的代码。

说实话:

MapX画点东西真TMD费事!

完全和GDI+不是一个思路。

啥最后都得扯到Table上去。
303739466 2010-05-06
  • 打赏
  • 举报
回复
大哥,你有点实例吗?可以让看看不
gnimgnot 2010-05-06
  • 打赏
  • 举报
回复
你得先添加 一个图层。
在图层上画点
303739466 2010-05-06
  • 打赏
  • 举报
回复
我看了,还是不会,连思路也不知道怎么弄
gnimgnot 2010-05-06
  • 打赏
  • 举报
回复
你查一下mapx的api
画点很简单的吧。
把x,y转换为本地坐标再传给他就行了
g394594141 2010-05-06
  • 打赏
  • 举报
回复
Map.ConvertCoord 方法(Map 对象)

目的

将地图坐标转换为屏幕显示坐标,或将屏幕坐标转换为地图坐标,具体取决于在此方法中传递的 Dir 参数。屏幕坐标以像素指定。

语法

OBJECT.ConvertCoord (ScreenX, ScreenY, MapX, MapY, Dir)

部分 说明
OBJECT 表示 Map 对象。
ScreenX 以像素指定的屏幕 X 坐标。 Single value.
ScreenY 以像素指定的屏幕 Y 坐标。单精度值。
MapX Map x 坐标(经度)。双精度值。
MapY Map Y 坐标(纬度)。双精度值。
Dir 转换坐标的方向,是从地图到屏幕,还是屏幕到地图。取值为 ConversionConstants 值。
是提供的屏幕坐标或地图坐标,以及其他坐标,根据指定的 Dir 填充。


估计这个函数你能用上,把地图坐标转换过来再画呢

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧