2015-10-05 30 views
1

我有我的ARCGIS android应用程序显示折线shapefile文件 - 在这种情况下是一个漫游网络。Android ARCGIS形状文件标注折线

形状文件具有包含道路“ROAD_NAME”的名称字段 - 这个问题我已经是如何创建一个层有路名自动显示

欢呼

B'

回答

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。 我认为这会更好。