2016-08-24 1 views
0

AndroidアプリケーションのMapboxに大量のGeoJSONデータを追加します。これにより、地図をスクロールする際のズームレベルを上げても非常に遅くなります。このため、現在のズームレベルに基づいて入力データを変更したいと考えています。私はgetCurrentZoomlevel()のような関数を探しましたが、MapViewクラスのgetMaxZoomLevel()関数しか見つかりませんでした。現在のズームレベルがわかる関数がありますか?Android用マップボックス:現在のズームレベルに基づいて地図の入力を変更します。

このソリューションを使用するには、ズームレベルに基づいて特定のポリゴンを動的に削除して追加する必要があります。マップ全体を再ロードせずにポリゴンを削除することはできますか?

+0

は、私がMapbox Androidのためのソリューションを探しています:removePolygonは、マップにポリゴンを追加するときに割り当てる必要がありますPolygon対象になります。 – DigiDude

+0

私のせい、ごめんなさい – xmojmr

答えて

3

Mapbox Android SDKの4.0.0からは、マップとのやりとりはMapViewではなくMapboxMapオブジェクトを使用して行われます。存在しないズームリスナーを追加しようとしているようですが、onCameraChangeListenerはズームレベルを確認できます。

mapboxMap.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() { 
    @Override 
    public void onCameraChange(CameraPosition position) { 

     ... 

     if (position.zoom < 12) { 

      ... 

     } 
    } 
}); 

あなたにGeoJSONファイルが大きく、あなたは私たちが4.2.0に導入されるスタイルのAPIを見てしたい場合がありますポリゴン/ポリラインを描画しようとしている場合。それはgeojsonレイヤーを追加してスタイルを設定することを可能にします。興味があれば、Mapbox Android Demo Appにある例を見てみることをお勧めします。 This Github issueは私が追加した一連の例を示しています。

EDIT:地図からポリゴンまたはポリラインを削除するために、忘れてしまったことがいくつかあります。 mapboxMap.removeAnnotations();を使用してマップからすべての注釈を削除するか、mapboxMap.removePolygon();を使用してポリゴンを削除します。あなたはリーフレットで溶液に言及している@xmojmr

Polygon polygon = map.addPolygon(new PolygonOptions() 
         .addAll(<List of points making up polygon>) 
         .setFillColor(color)); 
関連する問題