百度地图、高德地图的定位,搜索,模糊搜索-1

//这一段时间因为要做O2O商城,中间要用到地图的定位搜索功能,花了几天看了,其实大致的看文档的话很好解决得,主要说说者集体那遇到的麻烦吧
其中定位用到了

#import <BaiduMapAPI_Search/BMKSearchComponent.h>

开启定位

//开启定位
- (void)startLocationSuccess:(SuccessBlock)success Error:(BMKErrorBlock)error {

    if (success) {
        self.successBlock = success;
    }

    if (error) {
        self.errorBlock = error;
    }

    [self.locationService startUserLocationService];

}

//停止定位
- (void)stopLocation {
    [self.locationService stopUserLocationService];
    self.locationService.delegate = nil;
    self.locationService = nil;
}

#pragma --mark Delegate
/**
 *用户位置更新后,会调用此函数
 *@param userLocation 新的用户位置
 */
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation {

    [self stopLocation];
//    if (self.successBlock) {
//        self.successBlock(userLocation.location.coordinate);
//    }
    [self getReverseGeocodeWithCoordinate2D:userLocation.location.coordinate];

}

//然后就用到反地理编码的

#pragma --mark 反地理编码
- (void)getReverseGeocodeWithCoordinate2D:(CLLocationCoordinate2D)coordinate {

    BMKReverseGeoCodeOption *pt = [[BMKReverseGeoCodeOption alloc]init];
    pt.reverseGeoPoint = coordinate;

    if ([self.geocodesearch reverseGeoCode:pt]) {
        DBLog(@"反geo检索发送成功");
    }else {
        DBLog(@"反geo检索发送失败");
    }

}

#pragma --mark 反地理编码Delegate
/**
 *返回反地理编码搜索结果
 *@param searcher 搜索对象
 *@param result 搜索结果
 *@param error 错误号,@see BMKSearchErrorCode
 */
- (void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error {

    if (error == BMK_SEARCH_NO_ERROR) {
        if (self.successBlock) {
            self.successBlock(result);
        }
    }else  {
        if (self.errorBlock) {
            self.errorBlock(error);
        }
    }

}

到这里定位就结束了,

搜索用到了

#import <BaiduMapAPI_Search/BMKSearchComponent.h>

//搜索的话,这里就说一下模糊搜索,

- (BMKSuggestionSearch *)search {
    if (!_search) {
        _search = [[BMKSuggestionSearch alloc]init];
        _search.delegate = self;
    }
    return _search;
}

//模糊搜索
- (void)searchWithKeywords:(NSString *)keywords {

    self.op = [[BMKSuggestionSearchOption alloc]init];
    self.op.cityname = @"深圳市";
    self.op.keyword = keywords;
    if ([self.search suggestionSearch:self.op]) {
        NSLog(@"成功");
    }else{
        NSLog(@"失败");
    }

}
//返回 貌似会蹦,去论坛看了 好像是SDK问题 ,后来就舍弃了百度 改用高德了的
- (void)onGetSuggestionResult:(BMKSuggestionSearch*)searcher result:(BMKSuggestionResult*)result errorCode:(BMKSearchErrorCode)error {

    NSLog(@"%@",[NSThread currentThread]);

    NSLog(@"%@==\n%@==\n%@==",result.keyList,result.cityList,result.districtList);

    for (NSString *str in result.keyList) {
        NSLog(@"%@",str);
    }
    NSLog(@"=====================\n");
    for (NSString *str in result.cityList) {
        NSLog(@"%@",str);
    }
    NSLog(@"=====================\n");
    for (NSString *str in result.districtList) {
        NSLog(@"%@",str);
    }
}      
时间: 2024-10-13 09:12:18

百度地图、高德地图的定位,搜索,模糊搜索-1的相关文章

iOS判断并使用百度地图 高德地图 导航 (使用URI,不集成sdk)

[objc] view plaincopy  1. BOOL hasBaiduMap = NO;   2.         BOOL hasGaodeMap = NO;   3.            4.         if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidumap://map/"]]){   5.             hasBaiduMap = YES;   6.

openlayers 3加载百度、高德、google瓦片地图

1.加载高德地图 //高德地图 var AMapLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}' }) }); 2.google地图 //google地图 var googleMapLayer = new ol.la

高德地图之定位篇-----&gt;定位、预测天气、围栏、搜索周边、行踪轨迹

跟集成百度地图一样,首先获取KEY,获取方式(官方的截图) 这篇主要是讲解高德地图定位篇,高德地图定位篇跟高德地图篇是不同的sdk,分离开了... 来看下配置流程吧,配置是第一位的 1.从网站下载并解压得到定位包"Android_Location_V1.xx.jar". 2.开发工程中新建"libs"文件夹,将定位包拷贝到 libs 的根目录下.拷贝完成后的工程目录(以 V1.0.4 为例)如图所示: image 注意:若您在 Eclipse 上使用 adt22 版

Unity与Android交互-Unity接入高德地图实现定位以及搜索周边的功能(使用Android Studio)详细操作

刚进公司给安排的任务就是Unity接入高德地图,算是踩了不少坑总算做出来了,抽点时间写个博客记录一下 废话不多说 先上效果图 获取定位并根据手机朝向显示周边信息            使用的Unity版本为5.5,Androad Studio 2.3.1 接下来开始讲具体操作 首先是Androad Studio的基本配置 1.创建工程,空白的就行,反正也用不到界面布局 等待创建完成 2.新建库模块: 切换到Project视图 右击你的项目 新建一个库模块-用来负责与Unity交互 当然你也可以不

高德地图(基本地图+定位+周边搜索)第一版

package company.com.gaodedemo; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.View; import

高德,百度,Google地图定位偏移以及坐标系转换

一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的:但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用: 2.GCJ-02坐标系,又名"火星坐标系",是我国国测局独创的坐标体系,由WGS-84加密而成,在国内,必须至少使用GCJ-02坐标系,或者使用在GCJ-02加密后再进行加

Android 高德地图的定位,周边搜索

刚弄完这两个功能,当然是结合官网例子实现的.效果还行,稍作优化便可整合到app使用.在这里做一下总结,及说明下我的思路. 刚开始上手感觉比较乱学起来也比较累,方法,类太多,直接复制各种错,还不知道为什么这么做.现在我们一起交流下实现的思路: 1:定位:这是所有地图功能实现的基础,所以不管要实现诸如周边搜索啊,导航啊什么的都需要基于定位. 如何定位:官网上例子也很详细,主要是实现几个监听,并实现方法: aMap.setLocationSource(this);// 设置定位监听 //绑定监听 ma

百度地图实现普通地图、定位、周边搜索功能

注意:此Demo是用Android Studio实现的 //--------------一下是普通地图的实现----------------------------------- 1:打开百度地图APi进去,如果没有注册过的需要注册,注册过的登录进入 2:点击开发--Android地图SDk--点击获取密钥--点击创建应用--然后你就创建一个新的项目3:打开你项目下的res--values--string.xml把项目名:比如BaiDuMap复制到应用名称中去4:应用类型选择:Android S

百度地图、高德地图的数据从哪里得到的?[声明我只是此文章的搬运工,从百度知道复制来的]

要说数据来源,首先得对地图数据做一个分类,因为不同分类的数据,其来源,采集方法都是有大不同的. 要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念: 如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程. 对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容. 其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟: 矢量模型:同多X,Y(或者X,Y,Z