私はmapbox-iOS-SDK 3.2.3
を使用しています。マップの境界を制御するために、このようなプロパティやsmthを見つけることはできません。私はユーザーの可視領域を制限する必要があります。現在のSDKバージョンでは可能ですか?マップボックス内のマップ境界を制限する方法MGLMapView?
答えて
マップボックスの現在のバージョンには、あなたが望むように見えるものは何もありません。あなたは、
- マップビューのデリゲートにこれらの方法では
- を
mapViewRegionIsChanging:
かmapView:regionDidChangeAnimated:
を実装することで、それのような何かを得る現在の領域をチェックすることができるかもしれません。目的のエリアの外にある場合は、マップビューを目的の地域の中にリセットします。つまり、マップビューが地域外に移動し始めるとすぐに、地図ビューを元に戻します。
これはおそらく動作しますが、ユーザーがターゲット領域の外側をスクロールしようとすると、ビューが「stutter」になる可能性があります。私はあなたのアプリが何かを知っていませんが、(a)これが実際に必要かどうか、そして(b)マップビューのスクロールを制限するよりも、どんな問題も避けるための良い方法があるかどうかを検討する価値があるかもしれません。
私が見てきたように、問題はMapKitと同じくらい広く、まったく同じです。さて、私はデリゲートメソッドを使用してこれを解決しようとします。残念ながら、それは顧客からの地図フレームワークにとっての主要な要件の1つです。ご協力いただきありがとうございます! – ShurupuS
これは、オープンソースのフレームワークですので、あなたは常にあなた自身のデリゲートメソッド(多分 'shouldMapViewRegionChange'メソッドを追加)、またはあなたが望む結果を得るために他の手段を追加することに見ることができます。 –
私は@Tom Harringtonからアイデアを取り、知られているMapboxの範囲内でユーザーを維持しながら、どれくらいの吃音やアニメーションのジャンク感があるかを目指してデリゲートを実装しました。私は彼の答えを否定しましたが、この例を分かち合いたいと思っていました。ここで
が主な目標は、経験がまだ顧客に喜ばれるかどうかをテストすることです mapViewRegionIsChanging- のデリゲートを記入スウィフトデリゲートである(はい)
- は、デリゲートは、適切にユーザーを保つことができますデリゲートをあまりにも頻繁に呼び出すことなく範囲内で?
- が
MGLCoordinateBounds
- のみチェック平方Mapboxとして、バルボアパークを使用します(まだ検証される必要がある)場合は、顧客のスクロールすぎ北
- の概念が遠すぎるは、いくつかの許容範囲でチェックされ、
epsilon
4辺は簡単であるべき範囲外をチェック
func mapViewRegionIsChanging (mapView: MGLMapView) { let viewBounds = mapView.visibleCoordinateBounds // Set the map's bounds to Balboa Park, San Diego let boundsBalboaPark = MGLCoordinateBounds( sw: CLLocationCoordinate2D(latitude: 32.71942, longitude: -117.15914), ne: CLLocationCoordinate2D(latitude: 32.74093, longitude: -117.13374)) let deltaNorth = viewBounds.ne.latitude - boundsBalboaPark.ne.latitude let epsilon = 0.025 // Magic number for tolerance of how far 'north' we allow (in degrees); Q.E.D meters if(deltaNorth > epsilon) { mapView.setVisibleCoordinateBounds(boundsBalboaPark, animated: true) } }
このアニメーションは、地図ビューをバルボアパークから北に向かって移動しすぎていることを示しています。あなたが見る吃音は現実ですが、受け入れられます。
私の代わりに元の中心位置へのジャンプを、あなたが希望範囲内に収まるようにバックだけで十分なジャンプができることをお勧めしたいです。それは飛躍を大幅に減らすでしょう。 –
私は同意するものとします。そして、もう一つの良いアイデアは、顧客が自分自身を再配向の経験を得ることができるので、ビュー最小ズームをアニメーション化することです。 – RobLabs
- 1. Google Maps API 3 - パン/マップの境界を制限する
- 2. スーパービュー境界内のサブビューの移動を制限する
- 3. マップの境界線やオブジェクトに移動することを制限する
- 4. Android - 境界ボックスへのドラッグアンドドロップの制限
- 5. マップボックスのズームを制限する
- 6. センターの列の境界内でGoogleマップを強制的にロックする方法を教えてください。
- 7. 境界を強制的に拡大してマップボックスをズームできますgl
- 8. Googleマップを計算する方法Javaの境界ボックスのズームレベル
- 9. Googleマップ - 境界線/ビューポート内で検索
- 10. 制限Googleマップ検索は都市の境界内にオートコンプリートを配置しますか?
- 11. Googleマップの境界線を取得する方法は?
- 12. ドラッグ可能なUIViewをSuperViewの境界に制限する
- 13. MapKitマップのズーム/境界をRouteMeマップのズーム/境界と一致させる
- 14. GeoJSONの境界をマップに追加することなくGeoJSONの境界を計算する方法
- 15. は、境界値で厳密にパラメータ値を制限する
- 16. Bing maps - パンニングを境界領域に制限する
- 17. RaphaelJSを境界線と位置に制限する
- 18. Googleマップの境界(位置データを緯度/経度の境界に限定する)
- 19. パンジェスチャーがマップボックスに手を触れないMGLMapView
- 20. Googleマップ:サブ境界の数
- 21. Googleマップのオートコンプリートと境界
- 22. ウィザードを基準に制御境界を取得する方法
- 23. Googleマップv3境界ハイライト
- 24. pyqt:境界ウィジェットの制御
- 25. Java - JPanelとその内容境界を設定する方法
- 26. 境界内のテキスト
- 27. Googleマップのジオコード制限を回避する別の方法
- 28. Googleマップのタイムアウト制限を設定し、テストする方法は?
- 29. 水平/垂直軸に制限された境界楕円
- 30. 要素が境界領域を覆うことを制限する方法がありますか?jquery ui
私は私はあなたが何をしようとして理解していません。 –
地図の境界を設定して、たとえば1つの都市のみを表示したいとします。したがって、ユーザーはこの地図でズーム、パン、および通常の作業を行うことができますが、限られたエリアでのみ行うことができます。 – ShurupuS
Mapboxには現在、ソリューションが組み込まれているようです:https://www.mapbox.com/ios-sdk/examples/constraining-gestures/ – Stonetip