Commit ab66a73f authored by lmj_521aiau@163.com's avatar lmj_521aiau@163.com

no message

parent 2902f9e4
...@@ -12,20 +12,40 @@ ...@@ -12,20 +12,40 @@
@interface ZJBaseMapViewController ()<MAMapViewDelegate, XMPopupListViewDelegate, GMSMapViewDelegate> @interface ZJBaseMapViewController ()<MAMapViewDelegate, XMPopupListViewDelegate, GMSMapViewDelegate>
//@property (nonatomic, strong) MAMapView *mapView;
@property (nonatomic, strong) UIButton *gpsButton;
@property (nonatomic, strong) ZJMapViewPersonCardView *cardView; @property (nonatomic, strong) ZJMapViewPersonCardView *cardView;
@property (nonatomic ,strong) NSMutableArray<ZJFriendModel *> * friendDataSource; @property (nonatomic ,strong) NSMutableArray<ZJFriendModel *> * friendDataSource;
@property (nonatomic, strong) ZJMapCardFriendSelectView *selectView; @property (nonatomic, strong) ZJMapCardFriendSelectView *selectView;
@property (nonatomic, strong) ZJFriendModel *selectFriendModel; @property (nonatomic, strong) ZJFriendModel *selectFriendModel;
@property (nonatomic, strong) GMSMapView * mapView; @property (nonatomic, assign) ZJMapType mapType;
/********************/
@property (nonatomic, strong) MAMapView * GDMapView;
///全轨迹overlay
@property (strong, nonatomic) MAPolyline *commonPolyline;
///车头方向跟随转动
@property (nonatomic, strong) NSArray *distanceArray;
@property (nonatomic, assign) double sumDistance;
/********************/
@property (nonatomic, strong) GMSMapView * GGMapView;
@property (nonatomic, strong) GMSCircle * selfCircle;
@property (nonatomic, strong) GMSMarker * selfMarker; @property (nonatomic, strong) GMSMarker * selfMarker;
@property (nonatomic, assign) float zoom; @property (nonatomic, assign) float __block zoom;
@property (nonatomic, assign) float __block animationZoom;
@property (nonatomic, assign) NSTimer * ttt;
@property (nonatomic, assign) NSInteger tttCount;
@property (nonatomic, strong) GMSPolyline * initialPolyline;
@property (nonatomic, strong) GMSPolyline * actionPolyline;
@property (nonatomic, strong) GMSMutablePath * initiallinepath;
@property (nonatomic, strong) GMSMutablePath * actionlinepath;
@property (nonatomic, strong) GMSMarker * startMarker;
@property (nonatomic, strong) GMSMarker * endMarker;
@property (nonatomic, strong) GMSMarker * actionMarker;
@property (nonatomic, assign) BOOL refershMyself;
@end @end
...@@ -35,36 +55,17 @@ ...@@ -35,36 +55,17 @@
[super viewDidLoad]; [super viewDidLoad];
// Do any additional setup after loading the view. // Do any additional setup after loading the view.
[self setupUI];
self.friendDataSource = [NSMutableArray array]; self.friendDataSource = [NSMutableArray array];
[self setupUI];
// [self getFriendList]; [self getFriendList];
} }
- (void)viewDidAppear:(BOOL)animated { - (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated]; [super viewDidAppear:animated];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// [self getFriendList]; [self getFriendList];
}); });
self.refershMyself = YES;
[[ZJLocationManager shared] initWithLocationUpdateInfo:^(ZJLocationModel * model, CLLocation * location, ZJMapType mapType) {
if(!model){
return;
}
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(model.latitude, model.longitude);
if (self.refershMyself) {
self.mapView.camera = [GMSCameraPosition cameraWithTarget:coord zoom:self.zoom];
self.refershMyself = NO;
}
[self setPoint:coord target:1];
}];
} }
- (void)viewWillAppear:(BOOL)animated{ - (void)viewWillAppear:(BOOL)animated{
...@@ -72,39 +73,52 @@ ...@@ -72,39 +73,52 @@
[self.navigationController setNavigationBarHidden:true animated:true]; [self.navigationController setNavigationBarHidden:true animated:true];
} }
- (void)setMapType:(ZJMapType)mapType{
_mapType = ZJ_GMSMapType;
if (_mapType == ZJ_GMSMapType) {
_GGMapView.hidden = NO;
_GDMapView.hidden = YES;
}else{
_GGMapView.hidden = YES;
_GDMapView.hidden = NO;
}
}
- (void)setupUI{ - (void)setupUI{
_zoom = 18;
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 longitude:151.2086 zoom:12]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:[[[self.data Read] objectForKey:@"latitude"] doubleValue] longitude:[[[self.data Read] objectForKey:@"longitude"] doubleValue] zoom:_zoom];
_zoom = 14;
///初始化地图 ///初始化地图
// self.mapView = [[MAMapView alloc] initWithFrame:self.view.bounds]; self.GGMapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera];
self.mapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera]; _GGMapView.delegate = self;
_mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; [self.view addSubview: _GGMapView];
///把地图添加至view
[self.view addSubview: _mapView]; _GGMapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
_GGMapView.hidden = YES;
// self.mapView.mapType = 0;
// _mapView.showsWorldMap = @YES;
// [self.mapView performSelector:@selector(setShowsWorldMap:) withObject:@(YES)];
// if ([ZJUserInfoManager CNLanguage]) {
// self.mapView.mapLanguage = @0;
// [self.mapView performSelector:NSSelectorFromString(@"setMapLanguage:") withObject:@(0)];
// }else{
// self.mapView.mapLanguage = @1;
// [self.mapView performSelector:NSSelectorFromString(@"setMapLanguage:") withObject:@(1)];
// }
_mapView.delegate = self; self.GDMapView = [[MAMapView alloc] initWithFrame:self.view.bounds];
// _mapView.zoomLevel = 14; _GDMapView.delegate = self;
// _mapView.showsScale = false; _GDMapView.zoomLevel = 14;
// _mapView.showsCompass = false; _GDMapView.showsScale = false;
_mapView.settings.compassButton = YES; _GDMapView.showsCompass = false;
_mapView.settings.myLocationButton = YES; //如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
// _mapView.settings.scrollGestures = NO; _GDMapView.showsUserLocation = false;
// _mapView.settings.zoomGestures = NO; _GDMapView.mapType = 0;
_GDMapView.showsWorldMap = @YES;
[_GDMapView performSelector:@selector(setShowsWorldMap:) withObject:@(YES)];
if ([ZJUserInfoManager CNLanguage]) {
_GDMapView.mapLanguage = @0;
[_GDMapView performSelector:NSSelectorFromString(@"setMapLanguage:") withObject:@(0)];
}else{
_GDMapView.mapLanguage = @1;
[_GDMapView performSelector:NSSelectorFromString(@"setMapLanguage:") withObject:@(1)];
}
[self.view addSubview: _GDMapView];
_GDMapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
_GDMapView.hidden = YES;
self.mapType = [[[self.data Read] objectForKey:@"mapType"] intValue];
// 添加 card view // 添加 card view
self.cardView = [[[NSBundle mainBundle] loadNibNamed:@"ZJMapViewPersonCardView" owner:self options:nil] lastObject]; self.cardView = [[[NSBundle mainBundle] loadNibNamed:@"ZJMapViewPersonCardView" owner:self options:nil] lastObject];
...@@ -156,63 +170,20 @@ ...@@ -156,63 +170,20 @@
}; };
} }
- (void)setPoint:(CLLocationCoordinate2D)point target:(NSInteger)target{
if (target == 1) {
CLLocationCoordinate2D position = point;
_selfMarker.map = nil;
_selfMarker = [GMSMarker markerWithPosition:position];
// _selfMarker.appearAnimation = kGMSMarkerAnimationPop;
// _selfMarker.icon = [GMSMarker markerImageWithColor:[UIColor blackColor]];
_selfMarker.icon = [UIImage imageNamed:@"map_track_srart_end_icon"];
_selfMarker.tracksInfoWindowChanges = YES;
_selfMarker.title = @"Me";
_selfMarker.snippet = @"WTF";
_selfMarker.infoWindowAnchor = CGPointMake(0.5, 0.25);
_selfMarker.map = _mapView;
}else{
CLLocationCoordinate2D position = point;
GMSMarker *marker = [GMSMarker markerWithPosition:position];
marker.title = @"Hello World";
marker.map = _mapView;
}
}
-(void)mapView:(GMSMapView*)mapView idleAtCameraPosition:(GMSCameraPosition*)position{
_zoom = position.zoom;
}
- (void)mapView:(UIView *)mapView regionDidChangeAnimated:(BOOL)animated {
// if(mapView.isHidden) {
// return;
// }
//
// if(self.isSwitching) {
// self.isSwitching = NO;
// return;
// }
// [self.mapView performSelector:NSSelectorFromString(@"setMapLanguage:") withObject:@(1)];
// [self.mapView performSelector:NSSelectorFromString(@"setMapLanguage:") withObject:@(0)];
// if([mapView isKindOfClass:[MAMapView class]]) {
// if(!AMapDataAvailableForCoordinate(self.mapView.centerCoordinate)) {
//
// }
// } else {
// if(AMapDataAvailableForCoordinate(self.mapView.centerCoordinate)) {
//
// }
// }
}
#pragma mark 好友列表 #pragma mark 好友列表
- (void)getFriendList{ - (void)getFriendList{
if (![ZJUserInfoManager shared].isLogin) { if (![ZJUserInfoManager shared].isLogin) {
//未登录 //未登录
///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码 ///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
// _mapView.showsUserLocation = YES; if (self.mapType == ZJ_GMSMapType){
// _mapView.userTrackingMode = MAUserTrackingModeFollow; CLLocationCoordinate2D coord = CLLocationCoordinate2DMake([[[self.data Read] objectForKey:@"latitude"] doubleValue], [[[self.data Read] objectForKey:@"longitude"] doubleValue]);
[self setPoint:coord target:1];
}else{
///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
self.GDMapView.showsUserLocation = YES;
self.GDMapView.userTrackingMode = MAUserTrackingModeFollow;
}
return; return;
} }
[self.friendDataSource removeAllObjects]; [self.friendDataSource removeAllObjects];
...@@ -232,19 +203,12 @@ ...@@ -232,19 +203,12 @@
[weakSelf.addCareButton setHidden:false]; [weakSelf.addCareButton setHidden:false];
[weakSelf.style2BgImV setHidden:false]; [weakSelf.style2BgImV setHidden:false];
///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码 ///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
// weakSelf.mapView.showsUserLocation = YES; weakSelf.GDMapView.showsUserLocation = YES;
// weakSelf.mapView.userTrackingMode = MAUserTrackingModeFollow; weakSelf.GDMapView.userTrackingMode = MAUserTrackingModeFollow;
} else { } else {
[weakSelf.cardView setHidden:false]; [weakSelf.cardView setHidden:false];
[weakSelf.addCareButton setHidden:true]; [weakSelf.addCareButton setHidden:true];
[weakSelf.style2BgImV setHidden:true]; [weakSelf.style2BgImV setHidden:true];
// ZJFriendModel *model = weakSelf.friendDataSource.firstObject;
//
// MAPointAnnotation *pointAnnotation2 = [[MAPointAnnotation alloc] init];
// pointAnnotation2.coordinate = CLLocationCoordinate2DMake([model.lat doubleValue], [model.lon doubleValue]);
// pointAnnotation2.title = @"location";
// [self.mapView addAnnotation:pointAnnotation2];
// [self.mapView setCenterCoordinate:pointAnnotation2.coordinate animated:false];
} }
ZJFriendModel *model = self.friendDataSource.firstObject; ZJFriendModel *model = self.friendDataSource.firstObject;
...@@ -257,9 +221,15 @@ ...@@ -257,9 +221,15 @@
if ([[response objectForKey:@"status"] integerValue] == 105) { if ([[response objectForKey:@"status"] integerValue] == 105) {
[MBProgressHUD showError:[response objectForKey:@"msg"] toView:self.view]; [MBProgressHUD showError:[response objectForKey:@"msg"] toView:self.view];
} }
///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
// weakSelf.mapView.showsUserLocation = YES; if (self.mapType == ZJ_GMSMapType){
// weakSelf.mapView.userTrackingMode = MAUserTrackingModeFollow; CLLocationCoordinate2D coord = CLLocationCoordinate2DMake([[[self.data Read] objectForKey:@"latitude"] doubleValue], [[[self.data Read] objectForKey:@"longitude"] doubleValue]);
[self setPoint:coord target:1];
}else{
///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
self.GDMapView.showsUserLocation = YES;
self.GDMapView.userTrackingMode = MAUserTrackingModeFollow;
}
// [MBProgressHUD showError:[NSString stringWithFormat:@"获取好友列表失败\n%@", [response objectForKey:@"msg"]] toView:self.view]; // [MBProgressHUD showError:[NSString stringWithFormat:@"获取好友列表失败\n%@", [response objectForKey:@"msg"]] toView:self.view];
} }
...@@ -268,12 +238,6 @@ ...@@ -268,12 +238,6 @@
}]; }];
} }
#pragma mark - Action Handlers
- (void)returnAction
{
[self.navigationController popViewControllerAnimated:YES];
}
/** /**
选中cell后回调 选中cell后回调
@param indexPath 返回选中的indexPath @param indexPath 返回选中的indexPath
...@@ -313,8 +277,8 @@ ...@@ -313,8 +277,8 @@
MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init]; MAPointAnnotation *pointAnnotation = [[MAPointAnnotation alloc] init];
pointAnnotation.coordinate = CLLocationCoordinate2DMake(lat, lon); pointAnnotation.coordinate = CLLocationCoordinate2DMake(lat, lon);
pointAnnotation.title = @"latestLocation"; pointAnnotation.title = @"latestLocation";
// [_self.mapView addAnnotation:pointAnnotation]; [self.GDMapView addAnnotation:pointAnnotation];
// [_self.mapView setCenterCoordinate:pointAnnotation.coordinate animated:false]; [self.GDMapView setCenterCoordinate:pointAnnotation.coordinate animated:false];
}else if ([[response objectForKey:@"status"] integerValue] == 105) { }else if ([[response objectForKey:@"status"] integerValue] == 105) {
[MBProgressHUD showError:[response objectForKey:@"msg"] toView:self.view]; [MBProgressHUD showError:[response objectForKey:@"msg"] toView:self.view];
...@@ -323,10 +287,9 @@ ...@@ -323,10 +287,9 @@
} failure:^(NSError * _Nonnull error) { } failure:^(NSError * _Nonnull error) {
NSLog(@"失败"); NSLog(@"失败");
}]; }];
} }
#pragma mark - Map Delegate #pragma mark - AMap Delegate 高德
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation { - (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation {
if([annotation isKindOfClass:[MAPointAnnotation class]]) { if([annotation isKindOfClass:[MAPointAnnotation class]]) {
...@@ -344,4 +307,36 @@ ...@@ -344,4 +307,36 @@
return nil; return nil;
} }
#pragma mark - GMSMap Function google
- (void)setPoint:(CLLocationCoordinate2D)point target:(NSInteger)target{
if (target == 1) {
CLLocationCoordinate2D position = point;
_selfMarker.map = nil;
_selfMarker = [GMSMarker markerWithPosition:position];
// _selfMarker.appearAnimation = kGMSMarkerAnimationPop;
// _selfMarker.icon = [GMSMarker markerImageWithColor:[UIColor blackColor]];
_selfMarker.icon = [UIImage imageNamed:@"userPosition"];
_selfMarker.tracksInfoWindowChanges = YES;
_selfMarker.title = @"Me";
_selfMarker.snippet = @"WTF";
_selfMarker.infoWindowAnchor = CGPointMake(0.5, 0.25);
_selfMarker.map = _GGMapView;
CLLocationDistance distance = 50;
_selfCircle.map = nil;
_selfCircle = [GMSCircle circleWithPosition:position radius:distance];
_selfCircle.fillColor = [kColorWithRGBA(86, 142, 252, 0.15) colorWithAlphaComponent:0.5];
_selfCircle.strokeColor = [kColorWithRGBA(86, 142, 252, 0.6) colorWithAlphaComponent:0.5];
_selfCircle.strokeWidth = 1.0;
_selfCircle.map = _GGMapView;
}else{
CLLocationCoordinate2D position = point;
GMSMarker *marker = [GMSMarker markerWithPosition:position];
marker.title = @"Hello World";
marker.map = _GGMapView;
}
}
@end @end
...@@ -23,8 +23,6 @@ ...@@ -23,8 +23,6 @@
@interface ZJFriendTrackMapViewController () <MAMapViewDelegate, GMSMapViewDelegate> @interface ZJFriendTrackMapViewController () <MAMapViewDelegate, GMSMapViewDelegate>
//@property (nonatomic, strong) MAMapView *mapView;
@property (nonatomic, strong) UIButton *gpsButton;
@property (nonatomic, strong) ZJUserTrackTimeView *trackTimeView; @property (nonatomic, strong) ZJUserTrackTimeView *trackTimeView;
@property (nonatomic, strong) NSMutableArray<ZJLocationModel *> *locations; @property (nonatomic, strong) NSMutableArray<ZJLocationModel *> *locations;
...@@ -665,12 +663,12 @@ ...@@ -665,12 +663,12 @@
self.actionMarker.map = self.GGMapView; self.actionMarker.map = self.GGMapView;
_actionlinepath = [GMSMutablePath path]; _actionlinepath = [GMSMutablePath path];
__block NSInteger count = 0;
[self.trackTimeView.trackButton setSelected:true]; [self.trackTimeView.trackButton setSelected:true];
[self.trackTimeView.trackButton setEnabled:false]; [self.trackTimeView.trackButton setEnabled:false];
//路径动画1 //路径动画1
// __block NSInteger count = 0;
// dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)); // dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
// dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 0.15 * NSEC_PER_SEC, 0 * NSEC_PER_SEC); // dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 0.15 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
// dispatch_source_set_event_handler(timer, ^{ // dispatch_source_set_event_handler(timer, ^{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment