IMoblie 相关问题

0 投票

您好,我在使用SuperMap时,遇到几个问题,求帮忙。谢谢

一。 我在一个图层editLayer上添加线,设置style属性不起作用。代码如下

Layer editLayer = m_mapControl.getMap().getLayers().get(0);
DatasetVector dataset = (DatasetVector) editLayer.getDataset();
if (dataset != null) {
    Recordset recordset = dataset.getRecordset(true, CursorType.DYNAMIC);
    for (int i = 0; i < lngs.length - 1; i++) {
        Point2Ds point2Ds = new Point2Ds();
        point2Ds.add(new Point2D(lngs[3], lats[3]));
        point2Ds.add(new Point2D(lngs[i], lats[i]));
        boolean forward = CoordSysTranslator.forward(point2Ds, prjCoordSys);
        GeoLine geoLine = new GeoLine(point2Ds);
        GeoStyle geoStyle = new GeoStyle();
        geoStyle.setLineColor(new Color(255, 0, 0));
        geoStyle.setLineWidth(1);
        recordset.update();
    }

    m_mapControl.getMap().setViewBounds(recordset.getBounds());
    m_mapControl.getMap().setCenter(new Point2D(lngs[3], lats[3]));
    m_mapControl.getMap().setScale(1 / 57373.046875);
    m_mapControl.getMap().refresh();
    recordset.dispose();
}

二、关于坐标转换问题

在加载官方例子中的World.udb时 通过 

prjCoordSys = dataset.getPrjCoordSys();
boolean result = CoordSysTranslator.forward(point2Ds, prjCoordSys); 

把经纬度坐标转换为投影坐标时,result为false。但是如果采用的是加载百度地图的方式,却能转换成功,求告知原因,谢谢

三、我在好多例子中看到了 

m_mapControl.getMap().setScale(1 / 57373.046875);

关于这个 1 / 57373.046875 是如何计算出来的。

以上几个问题,请各位大神帮忙看哈,谢谢

8月 30, 2017 分类:  208次浏览 | 用户: xiaowu_zhu 才疏学浅 (13 分)

1个回答

0 投票
 
已采纳
(1)在普通矢量图层上设置单个对象的风格时不起作用的,可以对整个图层设置统一的风格,也可以通过单值专题图设置不同对象的风格;

(2)投影转换只能针对地理或者投影坐标系的对象,如果对象是平面无投影的坐标系,无法用投影转换;

(3)1 / 57373.046875只是地图中的某一级比例尺,可以在iDesktop中加载地图,然后在地图属性中查看当前地图的比例尺,然后在iMobile写对应的即可。
8月 30, 2017 用户: 王国新 名扬四海 (1,982 分)
采纳于 8月 30, 2017 用户:xiaowu_zhu
...