VC+mapX5.0 在指定经纬度显示车辆图标
2013-08-14 01:19
435 查看
http://blog.csdn.net/zhihu008/article/details/7777159
我正在学习利用vc实现mapx控件的功能,已经能够在vc的程序框架中实现地图显示,并且可以实现了放大、缩小、漫游以及图层控制等功能了。现在的问题是,希望能够在指定的位置(经纬度位置)上显示一个车辆图元!
我编写了一些代码但是却看不到车辆图元,相反显示的是一块32*32的黑色矩形块!
CMapX m_ctrlMapX;
void CStep2View::OnToolTest()
{
CMapXLayers layers = m_ctrlMapX.GetLayers();
CMapXFeature ftr;
try{
if (ftr.CreateDispatch(ftr.GetClsid()))
{
ftr = m_ctrlMapX.GetFeatureFactory().CreateSymbol();
CMapXStyle style = ftr.GetStyle(); //获得图元的风格
//设置图元的风格,显示位图
style.SetSymbolType(miSymbolTypeBitmap);
//指定所要显示位图的存放位置
style.SetSymbolBitmapName("D:\\Program Files\\MapInfo\\MapX 5.0\\CUSTSYMB\\CAR1-32.BMP");
//指定位图大小
style.SetSymbolBitmapSize(32);
//设置为透明
style.SetSymbolBitmapTransparent(TRUE);
//指定需要显示图元的位置(经纬度位置)
ftr.GetPoint().Set(106.580936, 29.561000);
layers.Item("871").AddFeature(ftr);
}
else
{
AfxThrowOleException(CO_E_CLASS_CREATE_FAILED);
}
}
catch (COleDispatchException *e) {
e->ReportError();
e->Delete();
}
catch (COleException *e) {
e->ReportError();
e->Delete();
}
}
那位大虾晓得,在vc中如何利用mapx在指定位置显示特定的位图图元阿???请赐教!多谢!
在线等!!
呵呵呵,经过一下午的努力问题解决了!!!
应该将style.SetSymbolBitmapName("D:\\Program Files\\MapInfo\\MapX 5.0\\CUSTSYMB\\CAR1-32.BMP")改为style.SetSymbolBitmapName("CAR1-32.BMP")!
开始散分了,大家都来拿分阿!
我来了。。。
顺便问个问题,为什么我在添加中文的时候出错?
CMapXPoint Pnt;
CMapXFeatureFactory FeaFac;
CMapXLayer lyr;
CMapXFeature ftr;
CMapXStyle NewStyle;
Pnt.CreateDispatch(Pnt.GetClsid());
ftr.CreateDispatch(ftr.GetClsid());
NewStyle.CreateDispatch(NewStyle.GetClsid());
lyr = m_ctrlMapX.GetLayers().Item("Customers");
FeaFac = m_ctrlMapX.GetFeatureFactory();
NewStyle.SetSymbolType(miSymbolTypeBitmap);
NewStyle.SetSymbolBitmapSize(24);
NewStyle.SetSymbolBitmapTransparent(TRUE);
NewStyle.SetSymbolBitmapName("STOP1-32.BMP");
m_ctrlMapX.SetAutoRedraw(FALSE);
lyr.SetEditable(TRUE);
Pnt.Set(m_dMapX, m_dMapY);
VARIANT vtPoint;
vtPoint.vt = VT_DISPATCH;
vtPoint.pdispVal = Pnt.m_lpDispatch;
VARIANT vtStyle;
vtStyle.vt = VT_DISPATCH;
vtStyle.pdispVal = NewStyle.m_lpDispatch;
lyr.SetAutoLabel(TRUE);
ftr = FeaFac.CreateSymbol(vtPoint, vtStyle);
lyr.SetKeyField("GEONAME");
ftr.SetKeyValue((LPCTSTR)sName);//此处添加label
lyr.AddFeature(ftr.m_lpDispatch);
lyr.Refresh();
// lyr.UpdateFeature(ftr,ftr);
m_ctrlMapX.SetAutoRedraw(TRUE);
lyr.SetEditable(FALSE);
你的问题是图标只要在MAPX安装目录下的CUSTSYMB文件夹下,可以直接指定图标的名称。
//
据我所知,MAPX在图元上好象不支持中文LABEL,
如果需要显示中文,好象要用的标注功能,而且标注有个BUG,会随着地图放大缩小进行相应的放大缩小。
///////////////////////////////////////////////////////////////
用MapX开发车辆监控系统添加车辆图标的问题
最近的一个小任务
依据车辆轨迹坐标在地图上添加一个小车的位图并显示车牌号
问题
1 我用添加位图符号的方法(在默认路径下custom中)添加了车辆位图,但我们头想要实现任意路径下的车辆图标添加 有没有解决方法
2 我用cmapxfeature f = mapx1.getfeaturefactory().createtext();方法添加车辆号
但怎么改变字体大小,和颜色呢 ?? 有其他方法也请告知
用MapX开发车辆监控系统添加车辆图标的问题
最近的一个小任务
依据车辆轨迹坐标在地图上添加一个小车的位图并显示车牌号
问题
1 我用添加位图符号的方法(在默认路径下custom中)添加了车辆位图,但我们头想要实现任意路径下的车辆图标添加 有没有解决方法
2 我用cmapxfeature f = mapx1.getfeaturefactory().createtext();方法添加车辆号
但怎么改变字体大小,和颜色呢 ?? 有其他方法也请告知
我正在学习利用vc实现mapx控件的功能,已经能够在vc的程序框架中实现地图显示,并且可以实现了放大、缩小、漫游以及图层控制等功能了。现在的问题是,希望能够在指定的位置(经纬度位置)上显示一个车辆图元!
我编写了一些代码但是却看不到车辆图元,相反显示的是一块32*32的黑色矩形块!
CMapX m_ctrlMapX;
void CStep2View::OnToolTest()
{
CMapXLayers layers = m_ctrlMapX.GetLayers();
CMapXFeature ftr;
try{
if (ftr.CreateDispatch(ftr.GetClsid()))
{
ftr = m_ctrlMapX.GetFeatureFactory().CreateSymbol();
CMapXStyle style = ftr.GetStyle(); //获得图元的风格
//设置图元的风格,显示位图
style.SetSymbolType(miSymbolTypeBitmap);
//指定所要显示位图的存放位置
style.SetSymbolBitmapName("D:\\Program Files\\MapInfo\\MapX 5.0\\CUSTSYMB\\CAR1-32.BMP");
//指定位图大小
style.SetSymbolBitmapSize(32);
//设置为透明
style.SetSymbolBitmapTransparent(TRUE);
//指定需要显示图元的位置(经纬度位置)
ftr.GetPoint().Set(106.580936, 29.561000);
layers.Item("871").AddFeature(ftr);
}
else
{
AfxThrowOleException(CO_E_CLASS_CREATE_FAILED);
}
}
catch (COleDispatchException *e) {
e->ReportError();
e->Delete();
}
catch (COleException *e) {
e->ReportError();
e->Delete();
}
}
那位大虾晓得,在vc中如何利用mapx在指定位置显示特定的位图图元阿???请赐教!多谢!
在线等!!
呵呵呵,经过一下午的努力问题解决了!!!
应该将style.SetSymbolBitmapName("D:\\Program Files\\MapInfo\\MapX 5.0\\CUSTSYMB\\CAR1-32.BMP")改为style.SetSymbolBitmapName("CAR1-32.BMP")!
开始散分了,大家都来拿分阿!
我来了。。。
顺便问个问题,为什么我在添加中文的时候出错?
CMapXPoint Pnt;
CMapXFeatureFactory FeaFac;
CMapXLayer lyr;
CMapXFeature ftr;
CMapXStyle NewStyle;
Pnt.CreateDispatch(Pnt.GetClsid());
ftr.CreateDispatch(ftr.GetClsid());
NewStyle.CreateDispatch(NewStyle.GetClsid());
lyr = m_ctrlMapX.GetLayers().Item("Customers");
FeaFac = m_ctrlMapX.GetFeatureFactory();
NewStyle.SetSymbolType(miSymbolTypeBitmap);
NewStyle.SetSymbolBitmapSize(24);
NewStyle.SetSymbolBitmapTransparent(TRUE);
NewStyle.SetSymbolBitmapName("STOP1-32.BMP");
m_ctrlMapX.SetAutoRedraw(FALSE);
lyr.SetEditable(TRUE);
Pnt.Set(m_dMapX, m_dMapY);
VARIANT vtPoint;
vtPoint.vt = VT_DISPATCH;
vtPoint.pdispVal = Pnt.m_lpDispatch;
VARIANT vtStyle;
vtStyle.vt = VT_DISPATCH;
vtStyle.pdispVal = NewStyle.m_lpDispatch;
lyr.SetAutoLabel(TRUE);
ftr = FeaFac.CreateSymbol(vtPoint, vtStyle);
lyr.SetKeyField("GEONAME");
ftr.SetKeyValue((LPCTSTR)sName);//此处添加label
lyr.AddFeature(ftr.m_lpDispatch);
lyr.Refresh();
// lyr.UpdateFeature(ftr,ftr);
m_ctrlMapX.SetAutoRedraw(TRUE);
lyr.SetEditable(FALSE);
你的问题是图标只要在MAPX安装目录下的CUSTSYMB文件夹下,可以直接指定图标的名称。
//
据我所知,MAPX在图元上好象不支持中文LABEL,
如果需要显示中文,好象要用的标注功能,而且标注有个BUG,会随着地图放大缩小进行相应的放大缩小。
///////////////////////////////////////////////////////////////
用MapX开发车辆监控系统添加车辆图标的问题
最近的一个小任务
依据车辆轨迹坐标在地图上添加一个小车的位图并显示车牌号
问题
1 我用添加位图符号的方法(在默认路径下custom中)添加了车辆位图,但我们头想要实现任意路径下的车辆图标添加 有没有解决方法
2 我用cmapxfeature f = mapx1.getfeaturefactory().createtext();方法添加车辆号
但怎么改变字体大小,和颜色呢 ?? 有其他方法也请告知
用MapX开发车辆监控系统添加车辆图标的问题
最近的一个小任务
依据车辆轨迹坐标在地图上添加一个小车的位图并显示车牌号
问题
1 我用添加位图符号的方法(在默认路径下custom中)添加了车辆位图,但我们头想要实现任意路径下的车辆图标添加 有没有解决方法
2 我用cmapxfeature f = mapx1.getfeaturefactory().createtext();方法添加车辆号
但怎么改变字体大小,和颜色呢 ?? 有其他方法也请告知
相关文章推荐
- VC+mapX5.0 在指定经纬度显示车辆图标
- 在浏览器的标签页显示网站标志图标(或指定图标)的方法
- 根据指定的经纬度显示地图位置
- 为制作的网站指定浏览器显示和收藏的图标
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 多个图标集于一张背景图片在网页上显示指定区域
- (转)在浏览器的标签页显示网站标志图标(或指定图标)的方法
- 在浏览器的标签页显示网站标志图标(或指定图标)的方法
- C#获取从指定的文件路径,获取该文件的图标,然后显示在image里
- richTextBox如何实现输入指定的字符显示一个表情图标?类似QQ那样?
- 高德地图生成静态图片,显示指定经纬度的地图
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 百度地图定位到指定点,并显示指定图标
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- Android 打开地图并显示指定的经纬度
- 在浏览器的标签页显示网站标志图标(或指定图标)的方法
- 指定S60程序图标的显示位置
- Win10让文件夹图标显示指定文字的技巧
- 使用VC实现读取指定路径下的文件,并显示所有文件的文件名和文件图标
- [转贴]指定S60程序图标的显示位置