c#+mapx 急,等待ing

303739466 2010-05-06 11:39:38
知道自己经纬度坐标,怎么在mapx中画点啊,求救各位高手啊?
...全文
64 点赞 收藏 11
写回复
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);
}
}
回复 点赞
Tong__Ming 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日
大哥,你有点实例吗?可以让看看不
回复 点赞
Tong__Ming 2010年05月06日
你得先添加 一个图层。
在图层上画点
回复 点赞
303739466 2010年05月06日
我看了,还是不会,连思路也不知道怎么弄
回复 点赞
Tong__Ming 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 填充。


估计这个函数你能用上,把地图坐标转换过来再画呢
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告