最近做了地图的功能,用了超图,就是简单实现显示当前位置。

前期

首先导入超图的sdk,我用的是iclient_android_7.1.0.jar。

权限及布局

网络访问权限:

GPS定位权限: 这是精确定位的权限,如果用到网络定位或基站定位,加入

布局文件:

"http://schemas.android.com/apk/res/android"

android:id="@+id/container"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/mapview"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="true"

android:enabled="true" />

"@+id/btn_location"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:layout_marginTop="10dip"

android:background="@drawable/location_marker" />

MapView是图层,在图层上再放置覆盖物,如定位的按钮btn_location。

显示当前位置

主界面:

mapView = (MapView) findViewById(R.id.mapview);

LayerView layerView = new LayerView(this);

layerView.setURL(Constant.URL_MAP);

mapView.setBuiltInZoomControls(true);

mapView.addLayer(layerView);

final Drawable drawableBlue = getResources().getDrawable(R.drawable.blue_pin);

new Handler().postDelayed(new Runnable()

{

@Override

public void run()

{

LocationUtil.initLocation(mapView, drawableBlue);

}

}, 2000);

LocationUtil:

public static void initLocation(MapView view, Drawable drawable)

{

if (view == null)

{

return;

}

mapView = view;

context = view.getContext().getApplicationContext();

if (context == null)

{

return;

}

overlay = new DefaultItemizedOverlay(drawable);

if (!mapView.getOverlays().contains(overlay))

{

mapView.getOverlays().add(overlay);

}

// times 用来计数第几次定位

times = 1;

mLocationManager = (LocationManager) context

.getSystemService(Context.LOCATION_SERVICE);

gpsListener = new MyLocationListener();

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,

5000, 3, gpsListener);

}

private static class MyLocationListener implements LocationListener

{

@Override

public void onLocationChanged(Location location)

{

Point2D gp = null;

String title = "当前位置";

try

{

gp = new Point2D(location.getLongitude(),

location.getLatitude());

overlayItem = new OverlayItem(gp, title, title);

overlay.clear();

overlay.addItem(overlayItem);

if (times < 2)

{

mapView.getController().animateTo(gp);

mapView.getController().setZoom(mapView.getMaxZoomLevel());

}

// 重新onDraw一次

mapView.invalidate();

times++;

// Toast.makeText(context, title, Toast.LENGTH_SHORT).show();

} catch (Exception e)

{

e.printStackTrace();

Toast.makeText(context, e.toString(), Toast.LENGTH_SHORT)

.show();

}

}

@Override

public void onProviderDisabled(String arg0)

{

System.out.println(arg0);

}

@Override

public void onProviderEnabled(String arg0)

{

System.out.println(arg0);

}

@Override

public void onStatusChanged(String arg0, int status, Bundle arg2)

{

}

}

LayerView是覆盖物图层,防止覆盖物。layerView.setURL(Constant.URL_MAP),放入你的iclient地址。mapView.setBuiltInZoomControls(true);设置可放大缩小。

postDelayed,之所以要延时发送,主要是我在用的时候,发现如果地图图层出不来的话,就永远出不来了,所以认为等待2s,等待地图图层显示出来。

new Point2D(location.getLongitude(), location.getLatitude());生成地图上的二维点。

overlay.addItem(overlayItem);将覆盖物放入覆盖物图层。

mapView.getController().animateTo(gp);设置地图中心点。

mapView.getController().setZoom(mapView.getMaxZoomLevel());设置地图缩放等级。

mapView.invalidate();地图重绘。

这样就简单的实现了超图的定位显示功能,因为百度不到相关资料,所以在这儿分享一下。

android显示超图地图,超图---简单地图显示相关推荐

  1. 百度步行导航加poi搜索android,【百度地图】带地图显示控件、导航控件、POI查找控件...

    标题: [完全开源]百度地图Web service API C#.NET版,带地图显示控件.导航控件.POI查找控件 概述: 源代码主要包含三个项目,BMap.NET.BMap.NET.Windows ...

  2. android 显示百度地图的静态图片

    在listview中要显示地图,使用百度地图的MapView显示感觉有点卡,就想能不能把地图截图下来显示,在查找资料的过程中发现百度提供了获取静态地图的方法,只需要自己拼装url,就能得到一张地图的静 ...

  3. Android Studio+百度地图API实现简单gis移动端App

    实习说明: 由于很多内容网上都是详细说明,但是我在帮助同学们解决问题过程遇到许多奇怪的问题,花了很多时间去解决,网上查不到,所以值得我记录下来,让后面的学弟学妹节省大部分时间!!同时我也会将该文章发布 ...

  4. 30.Android之百度地图简单学习

    今天用了下百度地图,简单写了一个例子,记录下. 一.申请AK(API Key) 要想使用百度地图sdk,就必须申请一个百度地图的api key.申请流程挺简单的. 首先注册成为百度的开发者,然后打开h ...

  5. Android如何实现地图定位?Android studio+百度地图API+Android6.0系统实现地图显示、地址设置、点击地图定位功能(详细)

    文章说明:本文初衷是为了记录毕设学习过程,避免忘记操作流程.该功能是毕业设计的Android软件端的功能之一,本文将从获取百度地图密钥(AK)开始,详细地对地图定位配置和相关代码进行说明,文末将附上实 ...

  6. android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...

    使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...

  7. android 卫星地图,推荐一款亲测好用,可显示卫星地图,高斯平面直角坐标和计算图幅编号等功能的安卓定位导航软件~...

    推荐一款亲测好用,可显示卫星地图,高斯平面直角坐标和计算图幅编号等功能的安卓定位导航软件-步行者坐标导航. 一.软件下载 小米应用商店搜:步行者坐标导航或 http://appcdn.wapx.cn/ ...

  8. Android调用高德地图直接导航的简单实例

    在学校最近做了一个小APP,脑子笨怕忘,写个博客记录一下. 简单来说就是保存地点,然后单击直接打开高德地图APP并从当前所在地导航到保存的地点.因为是小型学习用的,所以保存地点采用了Android本地 ...

  9. Android—百度地图的简单使用

    目录 百度地图 创建应用 获取开发版SHA1 获取发布版SHA1 设置包名 获得一个应用 创建模块 下载SKD HelloBaiDuMap 1.配置AndroidManifest.xml文件 2.在布 ...

  10. centOS7系统安装超图地图服务iServer-6R步骤

    centOS7系统安装超图地图服务iServer-6R步骤 安装步骤 1. 安装环境 2.开始安装 3.启动iServer服务 安装步骤 1. 安装环境 操作系统:centOS7.5 中间件:Tomc ...

最新文章

  1. poj 3254 Corn Fields (状态压缩DP)
  2. vb 搜索指定目录下的指定类型文件
  3. BIO与NIO、AIO的区别(这个容易理解)
  4. [Debug]IOS微信浏览器不支持form表单的target=_blank
  5. 卷积输出的记录,为什么是([3, 0, 1, 2])
  6. java instantiation,Instantiation of List (Java)
  7. springboot jwt token前后端分离_7个开源的 Spring Boot 前后端分离项目,一定要收藏!...
  8. 雷军变身IPO收割机:坐拥4家上市公司,今年至少收获8个IPO!
  9. PowerToys 0.19.0 发布,微软开发的免费实用工具集
  10. NOIP2018赛前停课集训记——最后的刷板子计划
  11. Session重点整理
  12. 程序员面试金典——1.1确定字符互异
  13. 【VMware vSAN 6.6】5.3.硬件兼容性:vSAN硬件服务器解决方案
  14. Java疯狂讲义读书笔记第五章
  15. [深度学习]如何替换YoloV5的主干网络:Flexible-Yolov5
  16. Web课程设计-仿当当网-增删改查-java+jsp+mysql-期末大作业
  17. Android多维商品属性SKU选择
  18. Caffe base_lr递减
  19. OFDM学习笔记(六)(峰均值问题)
  20. fbm是什么意思_fba是什么意思

热门文章

  1. 软件供应链安全现状分析与对策建议
  2. 计算机二级报考哪个科目比较好?
  3. ADF4351应用电路
  4. matlab中arma,ARMA模型的Matlab代码.doc
  5. TMS320F280049C 串行通信接口Serial Communications Interface (SCI)之RS485通信(多摩川编码器)
  6. 详解|天猫搜索前端技术历代记
  7. 2022年7月国产数据库大事记-墨天轮
  8. 仿真工具NS3的基本知识
  9. 苹果手机键盘html代码大全,iPhone拨号键盘中的*和#有什么作用 iPhone特殊代码分享...
  10. 计算机硬盘的常用分区工具,常用的几款分区合并工具推荐,合理使用电脑硬盘...