MapObject控件使用之图层制作

原创 2004年05月29日 15:55:00

MapObject控件使用之图层制作<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

作者:张松伟

zswking@163.com

 

有些时候将一些固定的数据制作成图层,可以提高程序的速度,而且使用方便。下面我就将对图层的制作方法进行一下简单的说明。

假设我们要将一些经纬度坐标用点的方式画在地图上,那么我们首先要有保存经纬度坐标的数组:m_LonArray, m_LatArray,均为CArray<float,float>型。然后我们在CMyView中增加一些成员变量:

 

              CmoDataConnection          pMoCon; 

                  CMoTableDesc                     desc;

                  CMoMapLayer                        layer;

                  CMoPoint                             m_point;

 

好了,是为创建新图层增加一个函数的时候了,在视图类中增加函数:CreateNewLayer()

BOOL CMyView:: CreateNewLayer ()

{

         if (!pMoCon.CreateDispatch(TEXT("MapObjects2.DataConnection")))

                   return FALSE;

         if(!desc.CreateDispatch("MapObjects2.TableDesc"))

                   return FALSE;

        

         VARIANT vt;

         vt.vt = VT_BOOL;

         vt.boolVal = VARIANT_FALSE;

        

         pMoCon.SetDatabase((LPCTSTR)"E://Demo//经纬度层");        //设置图层保存目录

         if(!pMoCon.Connect())

                   return FALSE;

        

         //设置图层的字段个数及属性,这里设置两个,一个为Number,一个为Name。表示点的号码及名称。

         desc.SetFieldCount(2);

         desc.SetFieldType(0,moString);

         desc.SetFieldName(0,"Number");

         desc.SetFieldLength(0,10);

         desc.SetFieldType(1,moString);

         desc.SetFieldName(1, "Name");

         desc.SetFieldLength(1, 10);

 

        //创建新图层,设置名称、类型及字段。

         CmoGeoDataSet geoDataset(pMoCon.AddGeoDataset(“经纬度层”, moShapeTypePoint,

                  (LPDISPATCH)desc, vt, vt);

                  

         if (!layer.CreateDispatch(TEXT("MapObjects2.MapLayer")))

                   return FALSE;

 

         //设置图层的记录集

         layer.SetGeoDataset(geoDataset);                 

         CMoRecordset recs(layer.GetRecords());

         CMoFields fields(recs.GetFields());

        

         for(int i=0; i<m_LonArray.GetSize(); i++)

         {

                  recs.AddNew();

                  m_point.SetX(m_ LonArray.GetAt(i));

                  m_point.SetY(m_ LatArray.GetAt(i));

                  SetValue(fields, "Shape",m_point);

                  SetValue(fields, "Number",m_Number.GetAt(i));//需定义CStringArray m_Number

                  SetValue(fields, "Name", m_Chname.GetAt(i));//需定义CStrignArray m_Name

                  recs.Update();

         }

 

         //设置点的颜色,并加入地图。

         layer.GetSymbol().SetColor(moLightYellow);

         CMoLayers layers(m_map.GetLayers());

         layers.Add(layer);

 

return TRUE;

}

好了,调用一下试试效果吧。

本人水平用限,欢迎大家批评指正。

C# Mapobject2.4 Gis二次开发

本人属于菜鸟,最近突然想学习了解一下有关Gis方面的开发,从网上搜索了很多资料,看到可以用MapObject(简称MO)组件进行二次开发,利用它可以在普通的编程语言(如VB、VC、Delphi)上实现...
  • lilin8905
  • lilin8905
  • 2011年07月04日 19:28
  • 3467

MapObject控件的使用之加入图层

MapObject控件的使用之加入图层 作者:北京 张松伟zswzwy@163.com MapObject控件是ArcInfo公司开发的一套功能强大的GIS地理信息系统控件,该控件功能非常强大,在软件...
  • zswzwy
  • zswzwy
  • 2003年09月26日 23:19
  • 1526

工具类库系列(十一)-ObjectMap

第十一个工具类:ObjectMap ObjectMap 是一个上篇提到的 objectid64 的一个idid映射关系表,由map实现 该类用于需求中时常会出现的 1对1  或者 1对多 映...
  • zilaishuichina
  • zilaishuichina
  • 2017年02月17日 14:25
  • 624

MapObject控件的使用之图层操作

MapObject控件的使用之图层操作作者: 北京 张松伟zswzwy@163.com 上一次我们已经加好了图层,但是不能对图层进行任何操作,比如移动、放大、缩小、全屏等。接下来我将介绍如何在MapO...
  • zswzwy
  • zswzwy
  • 2003年09月26日 23:02
  • 1985

MapObject 2.1在C#中的使用

 1. 将MapObject 2.1的控件加入控件TabTools中 选择 COMComponents=>MapObjects 2.1 Map Control, 加进来后是 AxMapObject2....
  • gong_hui2000
  • gong_hui2000
  • 2009年03月24日 11:46
  • 3831

ArcGIS Runtime SDK for iOS开发地图图层-图形图层

注:本文翻译自:https://developers.arcgis.com/ios/objective-c/guide/creating-a-graphics-layer.htm        创建图...
  • hlj184
  • hlj184
  • 2015年04月02日 22:18
  • 977

ArcEngine渲染图层只显示一种颜色的问题

今天在做单值渲染,需要在加载MXD时自动的将指定字段的所有值添加到IUniqueValueRenderer中去,如果你不知道如何做,那么可以百度Defining a renderer for laye...
  • sx341125
  • sx341125
  • 2016年09月18日 18:14
  • 735

学习使用Bing Maps Silverlight Control(四):添加自定义瓦片图层

5 自定义瓦片源 1、使用LocationRectTileSource自定义加载使用quadkey的瓦片源 就以必应在线地图为例,在控件中加载海南附近的必应地图(简体中文)。 首先,...
  • huyanliang
  • huyanliang
  • 2013年05月21日 08:36
  • 1610

MapObject 控件的使用之加入图层(作者/张松伟)

MapObject 控件的使用之加入图层 作者/张松伟 MapObject 控件是 ArcInfo 公司开发的一套功能强大的 GIS 地理信息系统控件,该控件功能非常强...
  • famenwuliang
  • famenwuliang
  • 2011年04月02日 18:17
  • 989

2 TileMapObject的使用

1 CCTMXObjectGroup的使用方法 为了取以下内容: 操作代码如下: T27TileMapObject.h #ifndef __T2...
  • toto1297488504
  • toto1297488504
  • 2014年11月09日 22:44
  • 948
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MapObject控件使用之图层制作
举报原因:
原因补充:

(最多只允许输入30个字)