是否有可能檢查GMSPath的一部分是否在可見區域?谷歌地圖iOS SDK檢查路徑是否在可見區域
5
A
回答
0
使用的MapView的pointForCoordinate
方法,看是否路徑的特定點是在屏幕
for (int i = 0; i < path.count; i++) {
CLLocationCoordinate2D coordinate=[path coordinateAtIndex:i];
CGPoint markerPoint = [mapView_.projection pointForCoordinate:coordinate];
if (markerPoint.x >= 0 && markerPoint.y >= 0 && markerPoint.x <= mapView_.frame.size.width && markerPoint.y <= mapView_.frame.size.height) {
NSLog(@"Visible");
}
}
5
的路徑是由座標上。而且mapview有一個可見的區域。 您可以輕鬆地檢查,如果一個座標是一個地區甚至eithout要pixelspace:
- (void)checkPath:(GMSPath*)path {
GMSVisibleRegion visibleRegion = _googleMap.projection.visibleRegion;
GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithRegion: visibleRegion];
for(int i = 0; i < path.count; i++) {
CLLocationCoordinate2D coordinate=[path coordinateAtIndex:i];
if([bounds containsCoordinate:coordinate]) {
NSLog("Visible");
}
}
}
+0
感謝您的回答.. –
1
這取決於你如何準確地需要它。
Daij-Djan's answer使用可見區域的軸對齊邊界框,如果視圖旋轉/傾斜,該邊界框將大於實際區域。
Sunny Shah's answer會更準確,因爲它將完全適合視圖的可見區域。但是它可能會比較慢,因爲它必須將每個點投影到屏幕座標中。
這兩個答案只檢查路徑上的點是否在可見區域內。如果您在穿過可見區域的路徑中有一條線,但兩個頂點位於可見區域之外,則這兩個答案都會將路徑報告爲不可見。爲了解決這個問題,你需要一些線對箱碰撞測試。
相關問題
- 1. 獲取LatLngBounds(可見區域)的子區域 - 谷歌地圖v2
- 2. 在谷歌地圖中跟蹤用戶路徑iOS SDK
- 3. 谷歌地圖Api檢查地點是否在路線上
- 4. SVG沒有繪製在谷歌地圖可見區域之外
- 5. 谷歌地圖的約束可見和可移動區域
- 6. 谷歌地圖的iOS SDK,區域自定義顏色
- 7. 如何設置區域與谷歌地圖SDK的iOS?
- 8. 檢查谷歌地圖是否安裝
- 9. 谷歌地圖或Mapquest API來跟蹤可見區域
- 10. 谷歌地圖路徑
- 11. 谷歌地圖不可見
- 12. 谷歌地圖是不可見的
- 13. 谷歌地圖不可見:谷歌地圖DirectionsService在asp.net mvc
- 14. 谷歌地圖在RubyMotion iOS SDK崩潰
- 15. 如何在谷歌地圖iOS版SDK
- 16. 如何檢查UIImageView是否在UIScrollView的可見區域之外?
- 17. 檢查標記是否在當前可見區域
- 18. 谷歌地圖區域/鄰域選擇
- 19. 檢查區域包含谷歌地圖中的點
- 20. 檢查地址是否存在。 Google地圖SDK iOS
- 21. Android谷歌地圖如何檢查用戶是否在標記圈地區
- 22. 在分區域劃分谷歌地圖
- 23. 如何在谷歌地圖sdk iOS中繪製一個路徑到另一個地方的路徑?
- 24. 在Google地圖上繪製線條/路徑並查看可見區域中的完整路徑線
- 25. 谷歌地圖上的繪圖區域
- 26. 谷歌地圖不可見在HTML
- 27. IOS:使用谷歌地圖繪製最佳路線路徑
- 28. iOS - 檢查MFMessageComposeViewController當前是否可見
- 29. 谷歌地圖sdk ios Api錯誤
- 30. 谷歌地圖iOS SDK - 添加徽章
謝謝..我會盡快測試 –