1

Я пытаюсь построить один небольшой пример с использованием SDK IndoorAtlas для внутренней навигации. Я использую Карты Google вместо Apple Maps. Как только я получаю изображение плана этажа из внутреннего пространства IndoorAtlas, мне нужно создать GMSCoordinateBounds, который требует, чтобы координаты SouthWest и NorthEast создавали границы. Мне нужно знать, как правильно определить эти координаты. В настоящее время мой код выглядит примерно так:Определение плана строительства SouthWest и NorthEast of Indoor Atlas

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(self.floorPlan.topRight.latitude,self.floorPlan.topRight.longitude); 
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(self.floorPlan.bottomLeft.latitude,self.floorPlan.bottomLeft.longitude); 


GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest coordinate:northEast]; 


UIImage *icon = fpImage; 
GMSGroundOverlay *overlay = 
[GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; 
overlay.bearing = self.floorPlan.bearing; 
overlay.map = _mapView; 

GMSCameraUpdate *updatedCamera = [GMSCameraUpdate setTarget:self.floorPlan.center zoom:10]; 
[self.mapView animateWithCameraUpdate:updatedCamera]; 
self.marker.position = self.camera.target; 
_mapView = [GMSMapView mapWithFrame:CGRectZero camera:self.camera]; 

Как определить указанные координаты. Пытаясь выполнить указанные выше координаты, я не получаю правильный прямоугольник.

Есть ли другой способ определить это?

+0

вы нашли решение? Я столкнулся с той же проблемой –

ответ

1

Я нашел способ, чтобы вычислить координаты

- (NSArray *) calculateLongLatDegreesInMeters: (CLLocationDegrees) широта {

float lat = M_PI * latitude/180; 

// Constants for calculating lengths 

float m1 = 111132.92; 

float m2 = -559.82; 

float m3 = 1.175; 

float m4 = -0.0023; 

float p1 = 111412.84; 

float p2 = -93.5; 

float p3 = 0.118; 

float eq1 = m1 + (m2 * cos(2 * lat)) + (m3 * cos(4 * lat)); 

float latitudeDegreeInMeters = eq1 + (m4 * cos(6 * lat)); 

float longitudeDegreeInMeters = (p1 * cos(lat)) + (p2 * cos(3 * lat)) + (p3 * cos(5 * lat)); 

NSString *latDegInMtr = [NSString stringWithFormat:@"%f",latitudeDegreeInMeters]; 
NSString *lonDegInMtr = [NSString stringWithFormat:@"%f",longitudeDegreeInMeters]; 


NSArray *arr = [NSArray arrayWithObjects:latDegInMtr,lonDegInMtr, nil]; 



return arr; //(latitudeDegreeInMeters, longitudeDegreeInMeters) 

}

+0

спасибо @Devashis за размещение кода. –