您好,
只是创建了geoMap,对geoMap设置了该布局地图空间需要打开的地图名称,此时geomap对象并没有与WorkSpace关联,所以是读不到工作空间内的地图信息的。
所以以setMapName方法给geoMap对象,立刻对该对象获取xml是无效的,如果想要直接在geoMap对象上获取,使用geoMap.setMapXML(),来赋予地图内容。
而且单纯获取map的xml来说,建议从WorkSpace的maps下使用地图名去获取。
第二个就是Scale比例尺,该比例尺是布局地图元素在布局中,地图当前显示的比例尺,直接对geoMap对象无法获取到,同样是因为以地图名称创建是拿不到地图信息的,
因此也无法得到比例尺信息,除非是geoMap.setMapXML()或者geoMap.setMapName()+geoMap.setScale();这两种方式创建初始化geoMap,才能立刻获取到。
不过对已经绑定好工作空间的Layout的layoutElements在添加geoMap对象以后会给一个默认的比例尺,此时获取geoMap是可以取到比例尺的。
LayoutElements elements = m_mapLayoutControl.getMapLayout() .getElements();
elements.moveFirst() ;
Geometry geoMapNow=elements.getGeometry();
GeoMap geoMap1=(GeoMap)geoMapNow;
double mapScale =geoMap1.getMapScale();
希望可以帮助到您。