发表用户:讨论贴
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=4&ID=6461
信息原始来源:James MapInfo技术论坛

文章标题:根据汽车所在经纬度,怎么在地图上面画出对应点?

joyjoyjoy

已经得到汽车所在经纬度,想在窗口的地图上面画出对应点.
自己猜想以下步骤:
1.找到指定点,并根据默认放大尺寸,在窗口中显示以指定点为中心显示地图.
2.新建一layer,把汽车所在经纬度换算成windows坐标,并画出汽车图标.


以上步骤对吗?并求对应mapxtreme+c# or mapx代码!

急急急!

sss7

呵呵。老兄也是新手啊!写的我的代码给你看看。
Dim X1 As Double
Dim Y1 As Double
Dim fNewSymbol As MapXLib.Feature
Dim fNewSymbol1 As MapXLib.Feature
Dim fMapSymbol As MapXLib.Feature
Dim pt As New Point
X1 = longitude
Y1 = latitude
pt.Set X1, Y1

With Map1.DefaultStyle
.SymbolFont = "custom symbols"
.SymbolType = 1
.SymbolBitmapName = "TAXI1-32.bmp"
.SymbolBitmapSize = 24
.SymbolBitmapTransparent = True
End With

If flag = 0 Then
Set fNewSymbol = Map1.FeatureFactory.CreateSymbol(pt, Map1.DefaultStyle)
Set fMapSymbol = lyrMyLayer.AddFeature(fNewSymbol)
a = fMapSymbol.FeatureKey
flag = 1
Else
lyrMyLayer.DeleteFeature a
Set fNewSymbol = Map1.FeatureFactory.CreateSymbol(pt, Map1.DefaultStyle)
Set fMapSymbol = lyrMyLayer.AddFeature(fNewSymbol)
a = fMapSymbol.FeatureKey
End If
后面的这一段代码是用来刷新地图的。即获从数据库中得了新的GPS定位信号以后重新画车辆位置的。我也是新手。大家相互学习哈。

joyjoyjoy

非常感谢sss7呀.

是否直接把经纬度(-135.23,168.23)赋予point.x, point.y 即可在地图上面划出对应点?

我是用c#的,

double x=-135.23;
double y=-168.23;

system.drawing.point point = new point();
point.x = x;
point.y = y;

double 赋值给point好象不行哟.

我用的是mapxtreme,featurefactory等属性都没有,真郁闷.

joyjoyjoy

Map.DisplayTransform.ToDisplay(dPoint, out point);

搞定.