mapinfo问题
我有一些点的经纬度 要求是在MAPINFO中做一个图层,把这些经纬度坐标点画上去。请问我需要怎么操作 麻烦说详细点谢谢了 我是新手没怎么用过mapinfo 谢谢说下 详细点
[解决办法]
void CJianguandaohangDlg::addjz(double xcoordinate,double ycoordinate,CString str)//在地图上显示基站的图标,传入函数为坐标
{
CMapXFeatureFactory FeaFac;
CMapXFeature Feature;
CMapXStyle Style;
CString mysql;
if (drawnum>=1)
{
CMapXLayer layer = m_map1.GetLayers().Item("tempLayer");
layer.SetEditable(TRUE);
CMapXFeature fea;
CMapXFeatures features;
while(layer.AllFeatures().GetCount()>0)
{
features=layer.AllFeatures();
fea =features.Item(1);
layer.DeleteFeature(fea);
layer.Refresh();
}
}
else
{
CMapXLayer lyr = m_map1.GetLayers().CreateLayer("tempLayer");//第一个是临时图层名字,第二个是存储的图层名字
m_map1.GetLayers().SetAnimationLayer(lyr); //设为动态图层
}
//m_map1.GetLayers().Remove("tempLayer");
//设置地图的中心
m_map1.SetCenterX(xcoordinate);
m_map1.SetCenterY(ycoordinate);
CMapXLayer Layer=m_map1.GetLayers().Item("tempLayer");
FeaFac=m_map1.GetFeatureFactory();
CMapXStyle style;
style.CreateDispatch(style.GetClsid());
//设置样式点风格。(节点式)
//style.SetSymbolType(miSymbolTypeVector); //设置点的显示方式为一些向量
// style.SetSymbolCharacter(39);//设置显示的符号。
//style.SetSymbolVectorSize(10);//设置符号大小。
//style.SetSymbolVectorColor(RGB(0,255,0));//设置符号颜色。
style.SetSymbolType(miSymbolTypeBitmap); //设置点的显示方式为bit格式的图
style.SetSymbolBitmapName("TOWE1-32.BMP") ;
style.SetSymbolBitmapSize(15);
VARIANT varStyle;
varStyle.vt = VT_DISPATCH;
varStyle.pdispVal = style.m_lpDispatch;
//设置MapX不进行自动更新
m_map1.SetAutoRedraw(FALSE);
//设置图层可写
Layer.SetEditable(TRUE);
double current = xcoordinate;
long currTime = GetTickCount();
long oldTime = currTime;
try
{
CMapXPoint point;
point.CreateDispatch(point.GetClsid());
point.Set(current, ycoordinate);
VARIANT varPoint;
varPoint.vt = VT_DISPATCH;
varPoint.pdispVal = point.m_lpDispatch;
CMapXFeature feature = FeaFac.CreateSymbol(varPoint, varStyle);
Layer.AddFeature(feature); //加入Feature
Layer.Refresh(); //更新图层
//设置MapX进行自动更新
m_map1.SetAutoRedraw(TRUE);
//设置图层不可写
Layer.SetEditable(FALSE);
}
catch(COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch(COleException *e)
{
e->ReportError();
e->Delete();
}
drawnum++;
}
[解决办法]
看mapinfo的使用帮助吧。
文件->新建表。然后根据坐标把点画上去
[解决办法]
我用的方法很简单啊:创建点
1.新建图层:文件→新建→增加两个字段:经度、纬度
2.添加经纬度数据到表中:窗口→新建浏览窗口(或工具栏中新建浏览窗口)→右键单击新建行→把你的经纬度坐标填写进去
3.创建点:表→创建点→设置X坐标、Y坐标分别对应你的经纬度,还可设置投影
4.完成
[解决办法]
create table JWD....
dim pt as object
//这里可以先设置点的样式Set Map ...
for(...)
{
pt=createpoint(经度,纬度);
insert into JWD(obj,...) (pt,....);
//或者先插入再Update JWD set obj=pt;
}
大概这样吧,具体语法查Mapbasic帮助吧
[解决办法]
不知道楼主的点多不多,如果不多的话,3楼的方法挺好的。如果很多的话,就要写语句了。