基于Google maps的定位 marker 路线规划 事件监听、响应等

近期做得一个基于Google maps的定位查找功能,由于国内对Google地图使用极少,所以走了不少弯路。千难万难下总算实现了功能,特地在这儿上传下代码,希望能对有需要的朋友们提供点便利。
下面的代码主要实现了这样几个功能:
1. 根据服务端经纬度定位,放置marker(单个或多个大头针)
2. 拖动地图自后根据视野中地图中心经纬度请求服务器获取该点周围的店铺
3. 点击大头针上的信息窗口之后的规划路线与导航
4. 以及一些效果实现,体验优化

上代码!———-


#import "ShopMapController.h"
@import GoogleMaps;
#import "ShopModel.h"
#import "ShopDetailController.h"
#import <XWKit/XWLocationManager.h>





@interface ShopMapController ()<GMSMapViewDelegate>

@property (strong, nonatomic) IBOutlet UIButton *refreshBtn;
@property (strong, nonatomic) IBOutlet UIButton *myLocationbtn;
@property (strong, nonatomic) IBOutlet UIImageView *centerFlagImage;
@property (strong, nonatomic) NSArray *shopList;//周边店铺列表
@property (nonatomic) CLLocationCoordinate2D coordinate;

@property (strong, nonatomic) IBOutlet NSLayoutConstraint *centertImageConstraints;




@end

@implementation ShopMapController{
   
    UIButton *_refreshBtn;
    GMSMapView *_mapView;
    BOOL _isUserMove;
    CLLocationCoordinate2D _lastCoord;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    _isUserMove = NO;
    _mapView.settings.zoomGestures = YES;
    if (self.isFromDetail) {
        self.title = [NSString stringWithFormat:@"%@ %@",self.shopName?LS(self.shopName):LS(@"Shop"),LS(@"Address")];
        [self updateMapByShopAddress];
    }else{
        [self getMyLocation];
        [self updateMapViewWhenNoData];
        [self getNearbyShopWith:self.coordinate];
        self.title = LS(@"Shop Nearby");
    }
}
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];

    [self.view removeFromSuperview];
}

//获取附近店铺
- (void)getNearbyShopWith:(CLLocationCoordinate2D)camCoord{
    __weak typeof(self) ws = self;
    [[HttpManager sharedInstance] fetchNearbyShopListWith:camCoord.latitude lon:camCoord.longitude token:@"" CompleteBlock:^(id response, OCResult *result) {
            if (result.success && [response isKindOfClass:[NSArray class]]) {
                self.shopList = (NSArray *)response;

                if (self.shopList && self.shopList.count > 0) {
                    [_mapView clear];
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值