一般的GIS控件是不可以作为一个后台的控件使用的,这几天发现MapX有一个方法交SetSize,其解释为:SetSize is for users that create map objects via CreateObject() call.
也就是说可以通过后台调用(例如服务器端)MapX来完成很多事情,包括WebGIS的渲染组件。可以测试如下:
创建一个VB工程,通过Sub Main启动,输入如下代码:
Dim mapx As Object
Sub main()
Set mapx = CreateObject("MapX.Map.5")
mapx.SetSize 600, 400
mapx.GeoSet = "..."
mapx.ExportMap "clipboard", miFormatBMP
End Sub
则可以将图像拷贝到剪切板。一起装的MapXtreme安装包括一个MapX,大概就是使用类似方法使用MapX作为地图渲染(Render)组件吧。
以前使用MO做过后台的数据更新,但图形的输入输出必须使用Form载体。相比较超图的Object就比较小家子气,没有暴露这些功能,必须有可视窗体创建其控件才可以使用,但其IMS却使用了Object,应该是直接调用底层的API或者有没有公开的接口可以绕开这些事情。