首页 / 浏览问题 / 移动GIS / 问题详情
kml桩号显示
58EXP 2023年05月30日

我有一个kml文件,使用DataConvertion导入地图之后(不论是安卓端还是桌面端)都只是显示线元素,里面的文字是看不到的

但是我点击桌面端的 专题图->统一风格按钮后,文字就出现了,想问下在移动端如何制作像桌面端这种的默认的统一风格的标签专题图,我尝试过使用示范代码

当中的代码,但是依然不管用,不会显示,求解答:

下面是图和代码

                              图一:导入kml

                                图二:点击统一风格后形成的

移动端代码:

ThemeLabel themeLabelMap = new ThemeLabel();
themeLabelMap.setLabelExpression("Name");
themeLabelMap.setAllDirectionsOverlappedAvoided(true);
// 为标签专题图的标签设置统一样式
ThemeLabelItem themeLabelItem1 = new ThemeLabelItem();
themeLabelItem1.setVisible(true);
TextStyle textStyle1 = new TextStyle();
textStyle1.setForeColor(new Color(255, 10, 10));
textStyle1.setFontName("宋体");
themeLabelItem1.setStyle(textStyle1);

// 添加标签专题图子项到标签专题图对象中
themeLabelMap.addToHead(themeLabelItem1);
m_MapControl.getMap().getLayers().add(m_kmlDataSource.getDatasets().get(0), true);
m_MapControl.getMap().getLayers().add(m_kmlDataSource.getDatasets().get(0),themeLabelMap, true);
//  m_MapControl.getMap().getLayers().add(kmlDataSource.getDatasets().get(0), true);

m_MapControl.getMap().refresh();

问题关闭原因: 该问题已解决

1个回答

您好,私信您了,方便的话麻烦把数据发送给我看一下呢
3,430EXP 2023年05月31日
您好,想问下这个能实现吗

您好,这边测试了可以的,导入kml为cad数据集再制作标签专题图显示正常,这里是数据链接

链接:https://pan.baidu.com/s/1KAB1-BKYUI-rLoFRXOhKCA?pwd=6f36

以下为代码:

mapcontrol.getMap().getLayers().clear();
ThemeLabel themeLabelMap = new ThemeLabel();
themeLabelMap.setLabelExpression("Name");
themeLabelMap.setRangeExpression("SmID");
ThemeLabelItem themeLabelItem1 = new ThemeLabelItem();
themeLabelItem1.setCaption("All");
themeLabelItem1.setEnd(12000);
themeLabelItem1.setStart(0);
themeLabelItem1.setVisible(true);
TextStyle textStyle1 = new TextStyle();
textStyle1.setForeColor(new Color(255, 190, 189));
textStyle1.setFontName("宋体");
textStyle1.setFontWidth(1.5);
textStyle1.setFontHeight(4.0);
themeLabelMap.setUniformStyle(textStyle1);
themeLabelItem1.setStyle(textStyle1);
themeLabelMap.addToHead(themeLabelItem1);

mapcontrol.getMap().getLayers().add(workspace.getDatasources().get("kml").getDatasets().get(0),true);//这里加入cad数据
mapcontrol.getMap().getLayers().add(workspace.getDatasources().get("kml").getDatasets().get(2),themeLabelMap,true);//这里加入标签专题图
mapcontrol.getMap().setViewBounds(workspace.getDatasources().get("kml").getDatasets().get(0).getBounds());
mapcontrol.getMap().refresh();

非常感谢您的帮助,已经成功解决。

想问下在您给的数据链接当中,这个result_CADToPOINT3D的数据集是如何得到的。因为我想拿到这些点的坐标值。。

这个点是在桌面上用cad数据集转简单数据集只勾选点数据集得到的,看您那边要怎么使用了,可以转为点数据集获取,不转的话用recordset.getgeometry判断筛选出geopoint类型的几何点再获取坐标也可以
感谢,已经获取到了这个点。
...