求教高德蓝点地图小蓝点不显示的原因

自定义高德地图定位小蓝点(用户位置精度圈) - 简书
自定义高德地图定位小蓝点(用户位置精度圈)
开发中有些会遇到地图的使用,对于高德地图当前位置的小蓝点,根据不同的UI效果可能需要实现不同效果,比如讲小蓝点换成用户头像、网络头像等。这里多高德地图的当前位置“小蓝点”进行处理,使得该功能更加实用,扩展性更强。
前提:已经集成了高德地图SDK,并且设置了AppKey,添加了定位权限相关设置,此处参照高德地图官方文档。
1、首先我们往视图上添加一个地图
- (void)creatMapView {
_mapView = [[MAMapView alloc]initWithFrame:self.view.bounds];
_mapView.delegate =
_mapView.showsCompass = NO;
_mapView.showsUserLocation = YES;
_mapView.userTrackingMode = MAUserTrackingModeF
_mapView.customizeUserLocationAccuracyCircleRepresentation = YES;
[self.view addSubview:_mapView];
一些基础属性的设置这里不多说,主要说明一下,如果需要高德地图显示定位信息,需要将showUserLocation这个属性设置成YES,这个属性设置成YES后,用户定位信息(包括位置与设备方向等数据)改变,以下代理方法就会执行
#pragma mark MAMapViewDelegate
- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation {
NSLog(@"%d",updatingLocation);
NSLog(@"位置更新");
NSLog(@"当前位置:%f,%f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);
从此回调方法中我们可以时时的获取到用户当前的经纬度信息。
2、显示地图定位的“小蓝点”,自定义小蓝点
以上我们已经将_mapView.showsUserLocation设置成了YES,如果需要定位追踪,可以将属性userTrackingMode设置成MAUserTrackingModeFollow,该属性是个枚举。
//如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
_mapView.showsUserLocation = YES;
_mapView.userTrackingMode = MAUserTrackingModeF
要自定义小蓝点,需要将属性值customizeUserLocationAccuracyCircleRepresentation设置成YES
//是否自定义用户位置精度圈
_mapView.customizeUserLocationAccuracyCircleRepresentation = YES;
2.1 高德SDK提供了类MAUserLocationRepresentation来修改小蓝点的外观等
//注:以下代码全部摘抄自高德地图开放平台
MAUserLocationRepresentation *r = [[MAUserLocationRepresentation alloc] init];
r.showsAccuracyRing = NO;///精度圈是否显示,默认YES
r.showsHeadingIndicator = NO;///是否显示方向指示(MAUserTrackingModeFollowWithHeading模式开启)。默认为YES
r.fillColor = [UIColor redColor];///精度圈 填充颜色, 默认 kAccuracyCircleDefaultColor
r.strokeColor = [UIColor blueColor];///精度圈 边线颜色, 默认 kAccuracyCircleDefaultColor
r.lineWidth = 2;///精度圈 边线宽度,默认0
r.enablePulseAnnimation = NO;///内部蓝色圆点是否使用律动效果, 默认YES
r.locationDotBgColor = [UIColor greenColor];///定位点背景色,不设置默认白色
r.locationDotFillColor = [UIColor grayColor];///定位点蓝色圆点颜色,不设置默认蓝色
r.image = [UIImage imageNamed:@"你的图片"]; ///定位图标, 与蓝色原点互斥
以上设置后还需要调用一个方法
[self.mapView updateUserLocationRepresentation:r];
以上方式可简单的实现修改小蓝点,但是可扩展性不强。
2.2 自己设置高德额地图的小蓝点
不通过MAUserLocationRepresentation设置但前位置。
///是否自定义用户位置精度圈(userLocationAccuracyCircle)对应的 view, 默认为 NO.\n 如果为YES: 会调用 - (MAOverlayRenderer *)mapView (MAMapView *)mapView rendererForOverlay:(id &MAOverlay&)overlay 若返回nil, 则不加载.\n 如果为NO : 会使用默认的样式.
//是否自定义用户位置精度圈
_mapView.customizeUserLocationAccuracyCircleRepresentation = YES;
以上是高德Api里的描述,也就是说将customizeUserLocationAccuracyCircleRepresentation设置成YES,可以自己通过方法定义小蓝点。
当前位置的实质也是一个大头针,那么我们在添加大头针的方法里面设置
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id&MAAnnotation&)annotation {
//用户当前位置大头针
if ([annotation isKindOfClass:[MAUserLocation class]])
static NSString *userLocationStyleReuseIndetifier = @"userLocationStyleReuseIndetifier";
MAAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:userLocationStyleReuseIndetifier];
if (annotationView == nil)
annotationView = [[MAAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:userLocationStyleReuseIndetifier];
annotationView.canShowCallout = NO;
annotationView.image = [UIImage imageNamed:@"heardImg"];
annotationView.frame = CGRectMake(0, 0, 26, 26);
annotationView.contentMode = UIViewContentModeScaleToF
annotationView.layer.masksToBounds = YES;
return annotationV
//其他大头针设置
else if ([annotation isKindOfClass:[MAPointAnnotation class]]) {
static NSString *locationBackViewReuseIndetifier = @"locationBackViewReuseIndetifier";
MAAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:locationBackViewReuseIndetifier];
if (annotationView == nil)
annotationView = [[MAAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:locationBackViewReuseIndetifier];
annotationView.canShowCallout = NO;
annotationView.image = [UIImage imageNamed:@"heardImg_default"];
annotationView.frame = CGRectMake(0, 0, 10, 10);
annotationView.contentMode = UIViewContentModeScaleToF
annotationView.layer.masksToBounds = YES;
以上方法,只要往地图上添加大头针就会通过此方法生成大头针的view,当前位置也是个大头针,通过判断如果是当前位置的大头针,我们可以自己定义。另外通过以下方法自定义小蓝点。
- (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id &MAOverlay&)overlay {
//自定义经度对应的MACircleView
if (overlay == mapView.userLocationAccuracyCircle) {
MACircleRenderer *accuracyCircleRenderer = [[MACircleRenderer alloc] initWithCircle:overlay];
accuracyCircleRenderer.lineWidth
accuracyCircleRenderer.strokeColor
= [UIColor lightGrayColor];
accuracyCircleRenderer.fillColor
= [UIColor colorWithRed:1 green:0 blue:0 alpha:.3];
return accuracyCircleR
github地址:
注:简书文章已不再继续更新和维护,有什么问题可以通过群号:一起沟通和学习。
跟踪显示用户的位置 设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置 MKUserTrackingModeNone:不跟踪用户的位置 MKUserTrackingModeFollow:跟踪并在地图上显示用户的当前位置 MKUserTra...
出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活...
http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们...
最近在做基于高德地图的定位、导航及添加大头针的功能,特此记录下来。。。方便刚接触的同学参考。。。 一、申请 Key:获取用户Key 1.访问 http://lbs.amap.com/console/key/,使用高德开发者账号登陆 2.在“KEY管理”页面点击上方的“获取k...
最近公司需要做范围内打卡的功能,所以研究了下高德地图的SDK,首先注册申请key就不多讲了,百度有很详细的资料,下面主要记录下实现方法。demo地址在最下方 我用的是pod管理工程,这是所有的sdk文件 pod'AFNetworking' pod'FMDB' pod'YYK...
楔子 平城地处启南的南方,是除了启南首府湘城之外的第二大城市。平城地处启南南端,毗邻南江,水运发达。民国开始,新政府大力扶植工商业,平城因为拥有地理优势,成为了进出口贸易的热门地带,湘城贵妇人手中的钻石戒指,香水口红都是通过平城港口运进来的。不过短短几年,平城一跃成为了启南...
来了几日,家里人每天都在问我的情况。说实话,这期间的心情确实有好有坏,有人说说话,时间总归过得快些。 谈不上不适应,但要是公司下一刻告诉我可以回家,那我拿上小箱子,边走边买车票。这时候,没女朋友,反倒少了一种牵挂,哭笑不得。不过,倒是对不住父母,尤其是我母亲,到这么远的地方...
1.简介 对于操作系统而言同时可以允许多个程序, 而不同的程序是运行在一个进程中的。而线程(轻量级进程)是程序执行流的最小单位,也可以说一个进程中可以包含多个线程,这些线程共享着进程所拥有的系统资源(CPU,内存等),因此,可以说进程是操作系统的程序运行过程的抽象,而线程是...
题记:当我们每次看到一些所谓的大师、专家充斥于股权众筹行业的时候,我们内心是心存隐忧的。我们的担心这个行业x被他们玩坏的时候更多的是怕那些心怀改变寻求转型的朋友们被坑被骗。劣币驱逐良币的同时,我们要站出来。 今年我走访了国内大部分省会城市,非常惊讶的是:在北深杭等创业一线城...
华原初夏,依旧姹紫柳绿红花, 远山近水楼阁如图画。 牡丹园里,群芳斗艳, 缤纷彩呈,装谢罢。 沿街樱桃又上市, 玉圆珠润,玛瑙珊瑚羞愧煞。 相约三三两两,春去有谁惜, 天南地北聚无涯。 美酒佳肴,高朋满座, 意气相投,漫道年少老眼花。 龙风店里龙戏凤,才子佳人结并蒂, 木犊...上一篇已经写了如何搭建高德地图的步骤,这里省略了,直接贴自己代码
*************************************定位的小蓝点***********************************************
先看配置文件
AndroidManifest.xml
&?xml version="1.0" encoding="utf-8"?&
&manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.homegode"
android:versionCode="1"
android:versionName="1.0" &
android:minSdkVersion="18"
android:targetSdkVersion="18" /&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /&
&uses-permission android:name="android.permission.WRITE_SETTINGS" /&
&application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" &
&meta-data
android:name="com.amap.api.v2.apikey"
android:value="86689cc69abe78eeab15a" /&
&!-- 启动的activity不是固定的 --&
android:name=".MainActivity"
android:label="@string/app_name" &
&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.LAUNCHER" /&
&/intent-filter&
&/activity&
&/application&
&/manifest&activity_main.xml
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.homegode.MainActivity" &
&com.amap.api.maps.MapView
android:id="@+id/main_mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" /&
&/RelativeLayout&
MainActivity
package com.example.
import android.app.A
import android.graphics.C
import android.location.L
import android.os.B
import com.amap.api.location.AMapL
import com.amap.api.location.AMapLocationL
import com.amap.api.location.LocationManagerP
import com.amap.api.location.LocationProviderP
import com.amap.api.maps.AM
import com.amap.api.maps.LocationS
import com.amap.api.maps.MapV
import com.amap.api.maps.model.BitmapDescriptorF
import com.amap.api.maps.model.MyLocationS
* AMapV1地图中简单介绍显示定位小蓝点 思路是界面展现一个mapView, 加载那个蓝色图标,并且设置后边圆圈的属性,
* 然后设置定位资源。如果不设置此定位资源则定位按钮不可点击。并且实现activate激活定位
* 之后mAMapLocationManager.requestLocationData(
* LocationProviderProxy.AMapNetwork, 2000, 10, this);
* 监听,并且在onLocationChanged这里实现回调方法
public class MainActivity extends Activity implements LocationSource,
AMapLocationListener {
private AMap aM
private MapView mapV
private OnLocationChangedListener mL
private LocationManagerProxy mAMapLocationM
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.main_mapView);
mapView.onCreate(savedInstanceState);// 此方法必须重写
* 初始化AMap对象
private void init() {
if (aMap == null) {
aMap = mapView.getMap();
setUpMap();
* 设置一些amap的属性
private void setUpMap() {
// 自定义系统定位小蓝点
MyLocationStyle myLocationStyle = new MyLocationStyle();
myLocationStyle.myLocationIcon(BitmapDescriptorFactory
.fromResource(R.drawable.location_marker));// 设置小蓝点的图标
myLocationStyle.strokeColor(Color.BLACK);// 设置圆形的边框颜色
myLocationStyle.radiusFillColor(Color.argb(100, 0, 0, 180));// 设置圆形的填充颜色
myLocationStyle.strokeWidth(1.0f);// 设置圆形的边框粗细
aMap.setMyLocationStyle(myLocationStyle);
aMap.setLocationSource(this);// 设置定位资源。如果不设置此定位资源则定位按钮不可点击。并且实现activate激活定位,停止定位的回调方法
aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示
aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
* 定位成功后回调函数
public void onLocationChanged(AMapLocation aLocation) {
if (mListener != null && aLocation != null) {
mListener.onLocationChanged(aLocation);// 显示系统小蓝点
* 激活定位
public void activate(OnLocationChangedListener listener) {
mListener =
if (mAMapLocationManager == null) {
mAMapLocationManager = LocationManagerProxy.getInstance(this);
* mAMapLocManager.setGpsEnable(false);
* 1.0.2版本新增方法,设置true表示混合定位中包含gps定位,false表示纯网络定位,默认是true Location
* API定位采用GPS和网络混合定位方式
* ,第一个参数是定位provider,第二个参数时间最短是2000毫秒,第三个参数距离间隔单位是米,第四个参数是定位监听者
mAMapLocationManager.requestLocationData(
LocationProviderProxy.AMapNetwork, 2000, 10, this);
* 停止定位
public void deactivate() {
mListener =
if (mAMapLocationManager != null) {
mAMapLocationManager.removeUpdates(this);
mAMapLocationManager.destroy();
mAMapLocationManager =
* 方法必须重写
protected void onResume() {
super.onResume();
mapView.onResume();
* 方法必须重写
protected void onPause() {
super.onPause();
mapView.onPause();
deactivate();
* 方法必须重写
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
* 方法必须重写
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
* 此方法已经废弃
public void onLocationChanged(Location location) {
public void onProviderDisabled(String provider) {
public void onProviderEnabled(String provider) {
public void onStatusChanged(String provider, int status, Bundle extras) {
******************************添加marker******************************************
package com.example.
import android.app.A
import android.os.B
import com.amap.api.location.LocationManagerP
import com.amap.api.maps.AM
import com.amap.api.maps.LocationSource.OnLocationChangedL
import com.amap.api.maps.MapV
import com.amap.api.maps.model.BitmapDescriptorF
import com.amap.api.maps.model.LatL
import com.amap.api.maps.model.M
import com.amap.api.maps.model.MarkerO
public class MainActivity extends Activity {
private AMap aM
private MapView mapV
private OnLocationChangedListener mL
private LocationManagerProxy mAMapLocationM
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.main_mapView);
mapView.onCreate(savedInstanceState);// 此方法必须重写
if (aMap == null) {
aMap = mapView.getMap();
aMap.setTrafficEnabled(true);//开始实时交通
aMap.setMapType(AMap.MAP_TYPE_NORMAL);//有普通,卫星,夜间模式
MarkerOptions markerOptions = new MarkerOptions();
//添加一个位置--经度,维度---marker对应一个markerOptions,用来设置marker的属性等
markerOptions.position(new LatLng(39.97525));
//添加图标
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.location_marker));;
//添加marker
Marker marker = aMap.addMarker(markerOptions);
* 方法必须重写
protected void onResume() {
super.onResume();
mapView.onResume();
* 方法必须重写
protected void onPause() {
super.onPause();
mapView.onPause();
* 方法必须重写
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
* 方法必须重写
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
高德地图API定位小蓝点实现
高德地图目前的定位类型有 3 种:
LOCATION_TYPE_LOCATE :只在第一次定位移动到地图中心点;
LOCATION_TYPE_MAP_FOLLOW :定位,移动到地图中...
基于高德地图实现完全自定义Marker
做地图社交类APP开发的都知道,一般情况下,为了整体的美观和用户体验度,我们需要定制化Marker的样式。本文中实现的方式都是基于高德地图的,百度地图也类似,大家可以照葫芦画瓢,废话不多说,先来看...
Android 高德基础地图定位、设置Marker、可视中心点实现步骤
一、基础地图部分
1.获取APPKey
在高德地图注册开发者账号,然后创建应用,使用SHA1和PackageName得到Key
创建应用的链接:http://lbs.amap.com/
Android高德地图使用
在Swift基础 - - 高德地图实践(一)中使用Swift来使用高德地图,这里使用Android实践高德地图包含定位,移动地图动画,获取网络数据,marker标记以及点击,Infowindow自定义...
Android高德地图,添加Marker会遮挡小蓝点,只需设置一个属性,可以让小蓝点显示在Marker上
在做高德地图项目的时候碰到一个问题,需要添加Marker并且显示小蓝点,如果Marker的位置跟小蓝点位置接近的时候,Marker会显示在上面遮挡小蓝点,但项目要求是要小蓝点显示在最上面,所以后来网上...
android高德地图marker多个点
本人也有做过百度地图的marker,但是百度地图的引用实在很麻烦,各种导包,so,jar,还有配置。所以高德就比较方便了。
只需引用下面的几句
显示定位蓝点
官方文档是最重要的学习源,这篇博客参考官方文档显示定位蓝点
在显示定位蓝点时,一个非常重要的事情是申请定位权限,不然会定位到莫名其妙的位置。官方文档对于定位蓝点其他的一些控制有详细说明。
核心代码...
地图做显示定位蓝点时遇到的问题
1.我是根据高德地图SDK中做出来的2.添加了定位蓝点时只会出现一个蓝点,地图没有(如上图)3.要解决这个问题(如下图)4.点击CustomLocation(然后给他一个经纬度,我的是南昌的,初始的位...
(转)高德地图之地图篇-----&定位的蓝点、添加Marker
原地址:http://blog.csdn.net/u/article/details/
上一篇已经写了如何搭建高德地图的步骤,这里省略了,直接贴自己...
第三方:高德地图 蓝点,定位,路线规划
如何申请 Key
1、创建新应用
进入控制台,创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。
2、添加新Key
在DOS命令窗口输入下面命...
没有更多推荐了,求教高德地图定位小蓝点小蓝点不显示的原因_百度知道
求教高德地图定位小蓝点小蓝点不显示的原因
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:10
获赞数:144
GPRS未开启,最好开启高精度GPRS,定位
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。上一篇已经写了如何搭建高德地图的步骤,这里省略了,直接贴自己代码
*************************************定位的小蓝点***********************************************
先看配置文件
AndroidManifest.xml
&?xml version="1.0" encoding="utf-8"?&
&manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.homegode"
android:versionCode="1"
android:versionName="1.0" &
android:minSdkVersion="18"
android:targetSdkVersion="18" /&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /&
&uses-permission android:name="android.permission.WRITE_SETTINGS" /&
&application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" &
&meta-data
android:name="com.amap.api.v2.apikey"
android:value="86689cc69abe78eeab15a" /&
&!-- 启动的activity不是固定的 --&
android:name=".MainActivity"
android:label="@string/app_name" &
&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.LAUNCHER" /&
&/intent-filter&
&/activity&
&/application&
&/manifest&activity_main.xml
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.homegode.MainActivity" &
&com.amap.api.maps.MapView
android:id="@+id/main_mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" /&
&/RelativeLayout&
MainActivity
package com.example.
import android.app.A
import android.graphics.C
import android.location.L
import android.os.B
import com.amap.api.location.AMapL
import com.amap.api.location.AMapLocationL
import com.amap.api.location.LocationManagerP
import com.amap.api.location.LocationProviderP
import com.amap.api.maps.AM
import com.amap.api.maps.LocationS
import com.amap.api.maps.MapV
import com.amap.api.maps.model.BitmapDescriptorF
import com.amap.api.maps.model.MyLocationS
* AMapV1地图中简单介绍显示定位小蓝点 思路是界面展现一个mapView, 加载那个蓝色图标,并且设置后边圆圈的属性,
* 然后设置定位资源。如果不设置此定位资源则定位按钮不可点击。并且实现activate激活定位
* 之后mAMapLocationManager.requestLocationData(
* LocationProviderProxy.AMapNetwork, 2000, 10, this);
* 监听,并且在onLocationChanged这里实现回调方法
public class MainActivity extends Activity implements LocationSource,
AMapLocationListener {
private AMap aM
private MapView mapV
private OnLocationChangedListener mL
private LocationManagerProxy mAMapLocationM
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.main_mapView);
mapView.onCreate(savedInstanceState);// 此方法必须重写
* 初始化AMap对象
private void init() {
if (aMap == null) {
aMap = mapView.getMap();
setUpMap();
* 设置一些amap的属性
private void setUpMap() {
// 自定义系统定位小蓝点
MyLocationStyle myLocationStyle = new MyLocationStyle();
myLocationStyle.myLocationIcon(BitmapDescriptorFactory
.fromResource(R.drawable.location_marker));// 设置小蓝点的图标
myLocationStyle.strokeColor(Color.BLACK);// 设置圆形的边框颜色
myLocationStyle.radiusFillColor(Color.argb(100, 0, 0, 180));// 设置圆形的填充颜色
myLocationStyle.strokeWidth(1.0f);// 设置圆形的边框粗细
aMap.setMyLocationStyle(myLocationStyle);
aMap.setLocationSource(this);// 设置定位资源。如果不设置此定位资源则定位按钮不可点击。并且实现activate激活定位,停止定位的回调方法
aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示
aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
* 定位成功后回调函数
public void onLocationChanged(AMapLocation aLocation) {
if (mListener != null && aLocation != null) {
mListener.onLocationChanged(aLocation);// 显示系统小蓝点
* 激活定位
public void activate(OnLocationChangedListener listener) {
mListener =
if (mAMapLocationManager == null) {
mAMapLocationManager = LocationManagerProxy.getInstance(this);
* mAMapLocManager.setGpsEnable(false);
* 1.0.2版本新增方法,设置true表示混合定位中包含gps定位,false表示纯网络定位,默认是true Location
* API定位采用GPS和网络混合定位方式
* ,第一个参数是定位provider,第二个参数时间最短是2000毫秒,第三个参数距离间隔单位是米,第四个参数是定位监听者
mAMapLocationManager.requestLocationData(
LocationProviderProxy.AMapNetwork, 2000, 10, this);
* 停止定位
public void deactivate() {
mListener =
if (mAMapLocationManager != null) {
mAMapLocationManager.removeUpdates(this);
mAMapLocationManager.destroy();
mAMapLocationManager =
* 方法必须重写
protected void onResume() {
super.onResume();
mapView.onResume();
* 方法必须重写
protected void onPause() {
super.onPause();
mapView.onPause();
deactivate();
* 方法必须重写
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
* 方法必须重写
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
* 此方法已经废弃
public void onLocationChanged(Location location) {
public void onProviderDisabled(String provider) {
public void onProviderEnabled(String provider) {
public void onStatusChanged(String provider, int status, Bundle extras) {
******************************添加marker******************************************
package com.example.
import android.app.A
import android.os.B
import com.amap.api.location.LocationManagerP
import com.amap.api.maps.AM
import com.amap.api.maps.LocationSource.OnLocationChangedL
import com.amap.api.maps.MapV
import com.amap.api.maps.model.BitmapDescriptorF
import com.amap.api.maps.model.LatL
import com.amap.api.maps.model.M
import com.amap.api.maps.model.MarkerO
public class MainActivity extends Activity {
private AMap aM
private MapView mapV
private OnLocationChangedListener mL
private LocationManagerProxy mAMapLocationM
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.main_mapView);
mapView.onCreate(savedInstanceState);// 此方法必须重写
if (aMap == null) {
aMap = mapView.getMap();
aMap.setTrafficEnabled(true);//开始实时交通
aMap.setMapType(AMap.MAP_TYPE_NORMAL);//有普通,卫星,夜间模式
MarkerOptions markerOptions = new MarkerOptions();
//添加一个位置--经度,维度---marker对应一个markerOptions,用来设置marker的属性等
markerOptions.position(new LatLng(39.97525));
//添加图标
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.location_marker));;
//添加marker
Marker marker = aMap.addMarker(markerOptions);
* 方法必须重写
protected void onResume() {
super.onResume();
mapView.onResume();
* 方法必须重写
protected void onPause() {
super.onPause();
mapView.onPause();
* 方法必须重写
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
* 方法必须重写
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
高德地图API定位小蓝点实现
高德地图目前的定位类型有 3 种:
LOCATION_TYPE_LOCATE :只在第一次定位移动到地图中心点;
LOCATION_TYPE_MAP_FOLLOW :定位,移动到地图中...
基于高德地图实现完全自定义Marker
做地图社交类APP开发的都知道,一般情况下,为了整体的美观和用户体验度,我们需要定制化Marker的样式。本文中实现的方式都是基于高德地图的,百度地图也类似,大家可以照葫芦画瓢,废话不多说,先来看...
Android 高德基础地图定位、设置Marker、可视中心点实现步骤
一、基础地图部分
1.获取APPKey
在高德地图注册开发者账号,然后创建应用,使用SHA1和PackageName得到Key
创建应用的链接:http://lbs.amap.com/
Android高德地图使用
在Swift基础 - - 高德地图实践(一)中使用Swift来使用高德地图,这里使用Android实践高德地图包含定位,移动地图动画,获取网络数据,marker标记以及点击,Infowindow自定义...
Android高德地图,添加Marker会遮挡小蓝点,只需设置一个属性,可以让小蓝点显示在Marker上
在做高德地图项目的时候碰到一个问题,需要添加Marker并且显示小蓝点,如果Marker的位置跟小蓝点位置接近的时候,Marker会显示在上面遮挡小蓝点,但项目要求是要小蓝点显示在最上面,所以后来网上...
android高德地图marker多个点
本人也有做过百度地图的marker,但是百度地图的引用实在很麻烦,各种导包,so,jar,还有配置。所以高德就比较方便了。
只需引用下面的几句
显示定位蓝点
官方文档是最重要的学习源,这篇博客参考官方文档显示定位蓝点
在显示定位蓝点时,一个非常重要的事情是申请定位权限,不然会定位到莫名其妙的位置。官方文档对于定位蓝点其他的一些控制有详细说明。
核心代码...
地图做显示定位蓝点时遇到的问题
1.我是根据高德地图SDK中做出来的2.添加了定位蓝点时只会出现一个蓝点,地图没有(如上图)3.要解决这个问题(如下图)4.点击CustomLocation(然后给他一个经纬度,我的是南昌的,初始的位...
(转)高德地图之地图篇-----&定位的蓝点、添加Marker
原地址:http://blog.csdn.net/u/article/details/
上一篇已经写了如何搭建高德地图的步骤,这里省略了,直接贴自己...
第三方:高德地图 蓝点,定位,路线规划
如何申请 Key
1、创建新应用
进入控制台,创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。
2、添加新Key
在DOS命令窗口输入下面命...
没有更多推荐了,}

我要回帖

更多关于 高德地图导航信号弱什么原因 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信