使用MapInfo开发ASP.NET上地图查看的简单例子

    在ASP.NET上开发地图查看功能,首先需要安装三个软件,vs,mapinfo,mapxtremeMapinfo是专业地图绘制工具。mapxteme是可用.net使用的插件,安装之后可以在vs上使用地图控件和相关命名空间,并可以将mapinfo绘制出来的地图转换成.NET可以识别的格式(如mws格式)。

 

一、MapInfo绘制地图

    要放在.net中查看的地图首先应该在mapinfo中绘制好。Mapinfo中是以表的形式组织文件,表中又多个字段来记录信息。每个表又可以画多个图层来组成一幅图,图的信息可以用表中的多个字段来丰富。以下MapInfo绘制的简单示例:

 

MapInfo编辑窗口主界面:

 

 

1 新建表

    新建表的时候可以使用原先的表结构,也可以创建新的表结构。创建新表的时候可以在新的地图页上编辑,也可以添加到当前的地图窗口编辑。选择界面如下:

 

 

2 表的字段设计

    根据地图需要的信息设计表的字段,如下所示,placeid,placenamePlaceid可以用来标志页面上的传值信息,placename可以在地图上显示地点名称。

 

3 绘制地图

    在表的字段设计好之后,就可以利用工具栏里面的工具进行地图的绘制了。在地图上某些具体的位置用图形圈化出来,用工具栏中的 进行字段的赋值。另外,也可以导入图片,在已有图片的基础上进行地图绘制。

 

 

4 表和图层

    在地图中,表和图层是可以根据需要随时更改的。 按钮可以进行图层的编辑,表的结构可以在菜单栏中选中更改。编辑完成后保存。

 

    另外注意:在mapinfo对地图编辑的时候,不要在其他程序使用该地图,会有传值错误。应该在关掉mapinfo后进行该地图的调用。

 

 

二、Mapxtreme转换格式

Mapxtreme中的Workspace管理器整体界面:

 

    用Mapxtreme中的Workspace管理器将在mapinfo编辑好各个表、图层(各个tab文件)整合成.NET可用的格式(mws)。可以这么来理解,如果把mws文件看成是SQL Server数据库文件,那么tab文件就相当于是SQL Server数据库中的各个表。在ASP.NET中的Webconfig中只需要连接mws文件就可以看到整个地图,就像连接SQL Server数据库到数据库的文件名可以看到所有表。

 

三、ASP.NET中查看地图

 

<%@ Register assembly="MapInfo.WebControls, Version=6.8.0.536, Culture=neutral, PublicKeyToken=0a9556cc66c0af57" namespace="MapInfo.WebControls" tagprefix="cc1" %>

 

<cc1:ZoomInTool ID="ZoomInTool1" runat="server" MapControlID="MapControl1" />

                            &nbsp;

                            <cc1:ZoomOutTool ID="ZoomOutTool1" runat="server" MapControlID="MapControl1" />

                            &nbsp;

                            <cc1:CenterTool ID="CenterTool1" runat="server" MapControlID="MapControl1" />

                            &nbsp;

                            <cc1:PanTool ID="PanTool1" runat="server" MapControlID="MapControl1" />

                            &nbsp;

                            <cc1:PointSelectionTool ID="InfoWebTool1" runat="server" ActiveImageUrl="MapXtremeWebResources/InfoToolControlActive.gif"

                                InactiveImageUrl="MapXtremeWebResources/InfoToolControlInactive.gif" MapControlID="MapControl1"

                                ClientCommand="InfoCommand" Command="Info" />

 

<cc1:MapControl ID="MapControl1" runat="server" Height="100%" Width="100%"

                    MapAlias="Map1" BorderColor="White" BorderStyle="None" BorderWidth="0px" />

 

 

实现控件功能的js代码:

//client info command to control client behavior for info tool.

function InfoCommand(name, interaction)

{

    if (arguments.length > 0) {

       this.Init(name, interaction);

    }

}

InfoCommand.prototype = new MapCommand();

InfoCommand.prototype.constructor = InfoCommand;

InfoCommand.superclass = MapCommand.prototype;

InfoCommand.prototype.Execute = function() {

    this.CreateUrl();

    this.AddParamToUrl("PixelTolerance", this.pixelTolerance);

    //create an XMLHttp obj to send request to server

    var xmlHttp = CreateXMLHttp();

    xmlHttp.open("GET", this.url, false);

    xmlHttp.send(null);

    //get response back

          //debugger;

    this.result = xmlHttp.responseText;

    //根据this.result查询设备列表

    if (this.result != "") {

 

        ymPrompt.setDefaultCfg({ maskAlpha: 0.8, maskAlphaColor: '#ffffff' });

        ymPrompt.win({ title: '设备列表', fixPosition: true, width: 800, height: 460, iframe: { id: 'myId', name: 'myName', src: '../EQBaseListByPlace.aspx?eplaceid=' + this.result} });

    }

 

};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值