2017-01-26 1 views
0

osmdroidのように、mapsforgeにバウンディングボックスを設定する方法と、pathLayerの上または下にどのようにテキストを配置するのですか?osmdroidと同じように、mapsforgeにバウンディングボックスを設定する方法と、pathLayerの上または下にテキストを配置するにはどうすればよいですか?

osmdroidでは、私は通常setScrollableAreaLimit()メソッドを呼び出しますが、mapsforgeではmapViewにそのようなメソッドはありません。これをどのように達成するのですか?

TextOverlayPathLayerの下または上に追加するにはどうすればよいですか?あなたが提供するコードから

//Bounding Box 
maxScrollableLimit = new BoundingBox(14.7882,121.1421,14.3469,120.8990); 

... 

private PathLayer createPathLayerFirst(PathWrapper response) { 
    Style style = Style.builder() 
      .generalization(Style.GENERALIZATION_SMALL) 
      .strokeColor(0x9900cc33) 
      .strokeWidth(4 * getResources().getDisplayMetrics().density) 
      .build(); 
    PathLayer pathLayer = new PathLayer(mapView.map(), style); 
    List<GeoPoint> geoPoints = new ArrayList<>(); 
    PointList pointList = response.getPoints(); 
    for (int i = 0; i < pointList.getSize(); i++) 
     geoPoints.add(new GeoPoint(pointList.getLatitude(i), pointList.getLongitude(i))); 
    pathLayer.setPoints(geoPoints); 
    return pathLayer; 
} 

答えて

0

あなたがすべてでmapsforge docsを見た場合、それは明らかではありません。最初にしてから、私の答えに戻ってください。マップの制限を設定し

、あなたのONSTART()メソッドに次のコードを追加します。レイヤーを追加するための

private BoundingBox getBoundingBox() { 
    final double MINLAT = Double.valueOf(res.getString(R.string.mapminlat)); 
    final double MINLON = Double.valueOf(res.getString(R.string.mapminlon)); 
    final double MAXLAT = Double.valueOf(res.getString(R.string.mapmaxlat)); 
    final double MAXLON = Double.valueOf(res.getString(R.string.mapmaxlon)); 
    return new BoundingBox(MINLAT, MINLON, MAXLAT, MAXLON); 
} 

mapView.getModel().mapViewPosition.setMapLimit(this.getBoundingBox()); 

と同じクラスで、以下の方法をご用意マップビューに次の操作を行います。

mapView.getLayerManager().getLayers().add(layer); 

レイヤーを作成するには、ドキュメントを参照してください。 examplesを特に見てください。おそらくLabelLayerがあなたが探しているものです。

関連する問題