mapinfo开发 >> MapXtreme for java基础简单例子代码

最后编辑时间:2021年07月16日 16:22:07

【内容简介】该教程罗列了基础代码主要有:MapXtreme加载地图、MapXtreme获取当前地图对象、MapXtreme设置尺寸、MapXtreme距离等等。

package com.testmap;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
 
import javax.swing.JFrame;
 
import com.mapinfo.beans.tools.MapToolBar;
import com.mapinfo.beans.vmapj.VisualMapJ;
import com.mapinfo.mapdefcontainer.FileMapDefContainer;
import com.mapinfo.mapdefcontainer.MapDefContainer;
import com.mapinfo.mapj.MapJ;
import com.mapinfo.mapxtreme.client.MapXtremeImageRenderer;
import com.mapinfo.unit.LinearUnit;
import com.mapinfo.util.DoublePoint;
import com.mapinfo.util.DoubleRect;
import com.mapinfo.xmlprot.mxtj.ImageRequestComposer;
 
public class demoMap extends JFrame {
 
    BorderLayout layout = new BorderLayout();
    MapToolBar mbar = new MapToolBar();
    VisualMapJ vj = new VisualMapJ();
 
    public demoMap () {
        super();
        try  {
            jbInit();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
         JFrame jf = new demoMap ();
         jf.setVisible(true);
 
    }
   public void jbInit() throws Exception{
       vj.setShowToolTips(true);
       this.getContentPane().setLayout(layout);
       this.setSize(new Dimension(800,800));
 
       this.getContentPane().add(mbar,layout.NORTH);
       this.getContentPane().add(vj,layout.CENTER);
       //加载地图数据
            vj.getMapJ().loadGeoset("E://workspace//TestMap//bin//com//testmap//data//world.gst", "E://workspace//TestMap//bin//com//testmap//data//", null);
     
       //获取当前地图对象
       MapJ mapobj= vj.getMapJ();

       //设置地图缩放(Zoom)
       mapobj.setZoom(30000);
 
       //设置地图测距单位(千米)
       LinearUnit distUnit = LinearUnit.kilometer;
       mapobj.setDistanceUnits(distUnit);
     
       //设置软件屏幕尺寸
       mapobj.setDeviceBounds(new DoubleRect(0,0,800,600));       
 
       //设置地图边界坐标
       DoubleRect bounds = new DoubleRect(-180,-90,180,90);
       mapobj.setBounds(bounds);
 
       //设置地图边界二  给定地图的中心,宽度和高度
       DoubleRect bounds = new DoubleRect(new DoublePoint(36,18),360,180);
       mapobj.setBounds(bounds);
 
 
       //1.保存为地图文件
       MapDefContainer mdc = new FileMapDefContainer("E://workspace//TestMap//bin//com//testmap//data");
       mapobj.saveMapDefinition(mdc,"worldmap");
 
       //2.保存数据库表中
       String driverName = "com.ibm.db2.jcc.DB2Driver";

       //图层居中,看全图
       //tableAlias 层别名
 public   void  LayerCenter( string  layerName)
 {
 MapInfo.Data.Table[] tables=new MapInfo.Data.Table[1];
 tables[0] = MapInfo.Engine.Session.Current.Catalog.GetTable(layerName);
 if(tables[0]==null)
  return;
 if(mapControl1.Map.Layers[layerName]==null)
  return;
 
 if(mapControl1.Map.Layers[layerName].Enabled == false)
  mapControl1.Map.Layers[layerName].Enabled = true;
 
 MapInfo.Mapping.IMapLayerFilter iMapLayerFilter = MapInfo.Mapping.MapLayerFilterFactory.FilterByTable(tables);
 MapInfo.Mapping.MapLayerEnumerator mapLayerEnumerator = mapControl1.Map.Layers.GetMapLayerEnumerator(iMapLayerFilter);
 mapControl1.Map.SetView(mapLayerEnumerator);
 OnFeatureUnclick();
}
 
   }

分享到: 豆瓣 新浪微博 百度贴吧 QQ空间 QQ好友
复制链接分享给好友或者自己收藏!这里会及时更新中。。。

相关推荐:
 
QQ
QQ:278325424
咨询热线
18191066384