我的ARCGIS android应用程序显示了折线shapefile文件 - 在这种情况下是一个漫游网络。
形状文件的字段包含道路名称" ROAD_NAME' - 我的问题是如何创建一个图层来自动显示道路名称?
欢呼声
乙
答案 0 :(得分:0)
我还尝试在地图上显示标签。 根据我的实验,有两种方法。我意识到了。一种方法是在地图上以编程方式绘制这些标签。但它需要付出很多努力。我做到了,它不漂亮。我想是的。
public class LabelLayer extends GraphicsLayer {
...
private void showLabel(final FeatureLayer fly, final QueryParameters query,final String labelField) {
new Thread(new Runnable() {
@Override
public void run() {
fly.getFeatureTable().queryFeatures(query, new CallbackListener<FeatureResult>() {
@Override
public void onCallback(FeatureResult objects) {
Iterator<Object> fet=objects.iterator();
while (fet.hasNext()){
Feature f=(Feature) fet.next();
Geometry geom= f.getGeometry();
Point p=null;
switch (geom.getType()){
case POINT:p=(Point)geom;break;
case POLYLINE: Polyline polyline=(Polyline)geom;break;
case POLYGON: p= GeometryEngine.getLabelPointForPolygon((Polygon)geom,mapView.getSpatialReference());break;
default:break;
}
txtSymbol.setFontWeight(FontWeight.BOLD);
txtSymbol.setColor(Color.DKGRAY);
txtSymbol.setText(f.getAttributeValue(labelField).toString());
Graphic gr = new Graphic(p, txtSymbol);
LabelLayer.this.addGraphic(gr);
}
}
@Override
public void onError(Throwable throwable) {
}
});
}
}).start();
}
...
}
这个类应该在onDraw()方法中实现。 第二个是使用ArcGIS的tpk。 我认为会更好。