首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

地图info有关问题

2013-01-05 
mapinfo问题我有一些点的经纬度 要求是在MAPINFO中做一个图层,把这些经纬度坐标点画上去。请问我需要怎么操

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楼的方法挺好的。如果很多的话,就要写语句了。

热点排行