android使用高德地图api

关于升级高德地图导航9.5.0以上版本的问题 ‘com.amap.api:navi-3dmap:X.X.X_3dmapX.X.X‘ 1.把依赖的jar包把XXX.jar 改成XXX.zip2.打开XXX.zip文件,把多余的文件删掉3.把依赖的jar包把XXX.zip改成XXX.jar。 阅读详情

使用高德地图获取当前定位和显示定位地图。

1、添加应用key
主要填写sha1安全码和包名
SHA1码:可在eclipse下,Window->Preferences->Android->Build,SHA1 fingerprint。
Package:自定义,后面开发时创建的包名要对应,例如:com.amap.navi.demo

2、创建工程
创建时包名要定义为com.amap.navi.demo。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.amap.navi.demo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <!--用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <!--用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!--获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!--用于访问网络,网络定位需要上网-->
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <!--用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

    <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="a73068790b8a332ad8538002102b5edf"/>
        <service android:name="com.amap.api.location.APSService" >
        </service>
        <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>

MainActivity.java

package com.amap.navi.demo;

import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Locale;

import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationClientOption.AMapLocationMode;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.maps2d.AMap;
import com.amap.api.maps2d.AMap.OnMapLoadedListener;
import com.amap.api.maps2d.CameraUpdateFactory;
import com.amap.api.maps2d.MapView;
import com.amap.api.maps2d.model.BitmapDescriptorFactory;
import com.amap.api.maps2d.model.LatLng;
import com.amap.api.maps2d.model.MarkerOptions;

import android.support.v7.app.ActionBarActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity
{
    //声明AMapLocationClient类对象
    public AMapLocationClient mLocationClient = null;
    public AMapLocationClientOption mLocationOption = null;
    private TextView hellow = null;
    private Button startlocation = null;
    private Button stoplocation = null;
    private MapView mMapView = null;
    private AMap mMap = null;

    private LatLng locLatlng;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        hellow = (TextView)findViewById(R.id.hellow);
        //控制按钮,开始和停止获取当前定位
        startlocation = (Button)findViewById(R.id.startlocation);
        stoplocation = (Button)findViewById(R.id.stoplocation);
        mMapView = (MapView) findViewById(R.id.map);
        mMapView.onCreate(savedInstanceState);

        startlocation.setOnClickListener(locationlister);
        stoplocation.setOnClickListener(locationlister);

        mLocationClient = new AMapLocationClient(getApplicationContext());
        mLocationClient.setLocationListener(mLocationListener);
        mLocationOption = new AMapLocationClientOption();
        mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
        mLocationOption.setOnceLocationLatest(true);
        mLocationOption.setNeedAddress(true);

        mLocationClient.setLocationOption(mLocationOption);

        if (mMap == null) {
            mMap = mMapView.getMap();
        }
        mMap.setOnMapLoadedListener(onmaploadedlistener);
    }

    public OnClickListener locationlister = new OnClickListener()
    {

        @SuppressLint("ShowToast")
        @Override
        public void onClick(View v)
        {
            switch (v.getId())
            {
            case R.id.startlocation:
                mLocationClient.startLocation();
                break;

            case R.id.stoplocation:
                mLocationClient.stopLocation();
                mLocationClient.onDestroy();
                break;

            default:
                break;
            }
        }
    };

    public AMapLocationListener mLocationListener = new AMapLocationListener()
    {

        @Override
        public void onLocationChanged(AMapLocation amapLocation)
        {String text = null;
            // TODO Auto-generated method stub
            if (amapLocation != null) {
                if (amapLocation.getErrorCode() == 0) {
                    //可在其中解析amapLocation获取相应内容。
                    selflatitude = amapLocation.getLatitude();
                    selflongitude = amapLocation.getLongitude();
                    Toast.makeText(getApplicationContext(), "lat:"+selflatitude+"long:"+selflongitude, 500).show();
                    text = "定位结果来源:"+amapLocation.getLocationType()+"\n"+
                            "纬度:"+amapLocation.getLatitude()+"\n"+
                            "经度:"+amapLocation.getLongitude()+"\n"+
                            "地址:"+amapLocation.getAddress();
                    locLatlng = new LatLng(amapLocation.getLatitude(),
                                           amapLocation.getLongitude());
                    if (mMap != null) {
                        addLocationMarker();
                        Log.e("MAP", "aaa");
                    }
                }else {
                //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
                Log.e("AmapError","location Error, ErrCode:"
                    + amapLocation.getErrorCode() + ", errInfo:"
                    + amapLocation.getErrorInfo());
                text = "location Error, ErrCode:"+ amapLocation.getErrorCode() + ", errInfo:"+ amapLocation.getErrorInfo();
                hellow.setText(text);
                }
            }
        }
    };
    public OnMapLoadedListener onmaploadedlistener = new OnMapLoadedListener()
    {

        @Override
        public void onMapLoaded()
        {
            // TODO Auto-generated method stub
            addLocationMarker();
        }
    };

    /**
     * 添加定位小图标到地图上
     */
    private void addLocationMarker() {
            if (locLatlng != null) {
                mMap.clear();
                mMap.addMarker(new MarkerOptions().position(locLatlng).icon(
BitmapDescriptorFactory.fromResource(R.drawable.markpoint)));
                mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(locLatlng, 10));
            }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings)
        {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onDestroy()
    {
        // TODO Auto-generated method stub
        super.onDestroy();
        mMapView.onDestroy();
    }

    @Override
    protected void onPause()
    {
        // TODO Auto-generated method stub
        super.onPause();
        mMapView.onPause();
    }

    @Override
    protected void onResume()
    {
        // TODO Auto-generated method stub
        super.onResume();
        mMapView.onResume();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState)
    {
        // TODO Auto-generated method stub
        super.onSaveInstanceState(outState);
        mMapView.onSaveInstanceState(outState);
    }


}
Android Studio2021.1.1 高德地图api调用这一篇就够了 别看其他的,直接点进来,记录小白调用高德API时遇到的坑,完整的用法,以及常见错误,有什么不会可以随时来问我!欢迎问题补充 阅读详情

相关推荐

高德地图 android api 实现自动定位

未经允许,禁止转载,违者必究! 浣熊我最近在研究高德地图android api,看到第三章定位信息后半部分关于“如何通过MyLocationOverlay 实现自动定位”的时候我凌乱了,写得过于简单,根本不知道如何操作。最后通过阅读官方的示例代码和在网上搜集大量资料实现了地图自动定位的功能。 开发指南第三章定位信息前半部分的代码实现的功能是:当手机采集的地理位置(经纬度)发生改变时在界面上显示

浣熊_BUPT 4万+

Android 调用第三方地图类App (高德 百度 百度网页版)

前言       最近项目中需要用到地图的功能,但是应用本身不是地图类应用,而且用地图只是为了分享和展示一个地点而已,所以完全没有必要去集成厚重的sdk到项目中来,所以想到了调起对应的地图类app来展示位置信息。当检测到安装了高德或者百度地图的时候,调起相对应的app展示,当没有这些地图app的时候,打开百度地图的网页版来实现地点的展示。        但是在实现调起高德或者百度地图app的时候,

roll圈圈的博客 2万+

安卓零基础到进阶——Android高德地图API定位小蓝点实现

推荐资源站:https://zhimalier.com/ 高德地图目前的定位类型有 3 种: LOCATION_TYPE_LOCATE :只在第一次定位移动到地图中心点; LOCATION_TYPE_MAP_FOLLOW :定位,移动到地图中心点并跟随; LOCATION_TYPE_MAP_ROTATE :定位,移动到地图中心点,跟踪并根据面向方向旋转地图。   1.首先在 ht...

m0_58523831的博客 1万+

Android调起高德地图

一、Android打开高德地图的方法汇总 System.out.println("乘客端经纬度:" + mNaviTo.latitude + "," + mNaviTo.longitude); /** * @param sourceApplication 必填 第三方调用应用名称。如 amap * @param poiname 非必填 POI 名称 * @param lat 必填 纬度 ...

zzq的博客 5827

掌握高德地图定位API在安卓平台的应用

在移动应用开发中,地图服务已成为不可或缺的一部分。高德地图API作为中国领先的地图服务提供商,为开发者提供了一系列丰富的地理信息服务,使得在应用中集成地图、路线规划、定位等功能成为可能。高德地图API不仅支持Web端的应用,更针对Android、iOS等移动平台提供了强大的支持,极大地丰富了移动应用的交互体验。本章节将首先介绍高德地图API的基本概念和功能范围,进而探讨其在应用中的实际运用,为后续深入讲解具体的定位技术、应用开发和优化策略打下坚实的基础。

weixin_31659095的博客 1326

高德地图路线API在Android平台的应用教程

高德地图API为开发者提供了一系列功能强大的地图服务,涵盖了基础地图展示、路线规划、地点检索等多方面的应用。通过高德地图API,开发者可以轻松地将地图服务嵌入到自己的应用中,从而提供丰富的地理信息和位置服务给最终用户。高德地图API提供的服务不仅包括实时的位置数据、地理编码、路径规划等,还包括了交通流量分析、地点推荐、POI信息查询等特色功能。这些功能的实现是基于高德地图自身深厚的地图数据积累和先进的数据处理能力。

weixin_42513928的博客 1404

Android 高德地图定位和导航

1. 在高德开放平台注册帐号2.在高德地图开发平台中下载Android平台下载地图SDK和定位SDK和导航SDK文件3. 添加jar包,将jar包放入工程的libs目录下。 (下载的三合一的SDK,只需下载自己需要的SDK)4. 申请API KEY  高德地图开发平台进入控制台 生成自己得key一:基础地图显示1.添加用户key 在工程的“ AndroidManifest.xml ”文件如下代码中...

Agnoi丶军 8480

Doris副本修复实战:从状态机到手动修复的完整指南

在分布式数据库系统中,多副本机制是实现高可用与数据一致性的核心技术。其原理是通过在不同节点存储数据的多个拷贝,确保部分节点故障时服务仍可继续。这项技术的核心价值在于保障数据可靠性,并支撑在线分析处理(OLAP)等对数据一致性要求高的应用场景。当副本出现损坏、丢失或版本不一致时,系统通常依赖自动修复机制,但在元数据损坏、多副本同时故障等复杂场景下,自动修复可能失效,需要深入理解副本状态机并借助手动工具介入。本文将聚焦Doris数据库,解析Tablet副本状态流转(如BAD、VERSION_ERROR),并详细

weixin_32288959的博客 461

Android应用拉取第三方地图(百度,高德,以及网页地图)

最近项目中需要添加一个对于目的地的导航功能

darkliang的博客 1657

在Window上安装和配置VTK9.x,并在QT项目中调试VTK是否可用

VTK+MSVC+Qt Creator + CMake配置

qq_42279379的博客 1000

探索Python融合地学:一文解决osgeo库安装失败问题

总结一下,要安装osgeo模块,关键在GDAL依赖库的安装,如果能够顺利安装GDAL依赖库,因其是osego的模块,因此osgeo的部分模块也能够得到自动安装,此时再运行代码,发现代码并不报错,能够正常运行了。第一步,我们要安装imagecodecs库,它支持多种常见的图像格式,当然也包含我们的目标tif格式,为方便后续的图像处理和安装osgeo模块,先安装此库。目前GDAL已经更新到了3.10版本,这里主要看你的Python版本是上面,小编用的是Python3.13,电脑是64位的,因此,我们选择。

Promising_GEO的博客 5461

如何将高德地图api引入安卓开发项目

将高德地图应用引入到安卓项目之中,核心步骤一眼看

2302_77062459的博客 604

基于LSTM语义分析的企业风险预测系统

在数字化时代,企业面临着前所未有的挑战和机遇,而风险管理作为确保企业稳定发展的关键一环,其重要性日益凸显。为了及时、准确地监测和分析企业相关的风险,并预测可能带来的风险,本文介绍了一种基于长短期记忆(LSTM)语义分析的企业风险预测系统。该系统利用深度学习技术,通过将收集到的企业数据进行预处理和分析,结合LSTM模型对文本进行深度语义分析,从而实现对潜在风险的预测和评估。系统设计方面,该系统包括数据预处理、LSTM模型构建与训练、风险预测以及可视化展示等模块。

qiufangtaowvnyyidtf的博客 1392

Android Studio调用高德地图api

前言: 在成功实现调用高德地图api的过程中我真的是遇到了很多的问题,感觉简直是把能遇到的各种问题都遇到了,比如同时导入了jar包和.so文件在运行时发现两者之间可能有冲突,或解决了该冲突之后,成功运行,但地图并不显示,显示为白屏等,在这个期间我做了很多的尝试,比如调整了targetSdk、Gradle的版本,按照其他资料注释了setting.gradle里面的部分内容,添加android:hardwareAccelerated="true"该句进行硬件加速等但都没有解决这个问题。 为了解决这个问题,我

qq_50272406的博客 8848

TensorRT-LLM环境配置避坑指南:从安装到实战

本文是一份详尽的TensorRT-LLM环境配置避坑指南。文章重点解析了从Python、CUDA、PyTorch版本选择,到解决mpi4py安装这一核心难题的完整流程,并提供了经过验证的稳定版本组合与实战排错方案,帮助开发者高效部署大语言模型推理优化环境。

a0b1c2d3的专栏 985

【Unity 实用工具篇】| Unity中 实现背景模糊效果,简单易用

背景模糊 是一个很实用的功能,它可以帮助游戏在视觉上有更好的专注力和表现力。 实现模糊的种类和方式有很多种,大家自行选择适合自己的就可以了。 下面一起来看下本文实现背景模糊的效果和使用方式吧!

努力前行,总会成为自己心中的那道光 4万+

Android 高德地图API(详细步骤+源码)

为了丰富对地图、定位的了解,在写了百度、腾讯的地图定位之后,终于到了高德地图了。我个人平时日常使用最多的定位软件就是高德地图。所以这篇文章,就带你来初步了解使用。 前言 正文   在此之前呢,默认都没有账号,因此需要先注册一个账号账号才行,点击高德开放平台进入主页面。 点击右上角的注册按钮,然后选择注册开发者的类型,有个人开发者、企业开发者。 如果你已经工作了可以选择企业开发者,只不过需要填写的资料要多一些,这里我选择成为个人开发者,点击。 勾选上这个选项,然后点击确认注册开发者,进入下一步,填写个人

晨曦 9万+

抖音无水印视频爬虫实战:从抓包分析到批量下载指定用户作品

抖音作为当前最受欢迎的短视频平台,拥有海量的优质内容。很多用户希望备份自己或他人的作品,但抖音官方并未提供批量下载功能,且直接下载的视频带有平台水印。本文将带领大家从零开始,通过抓包分析、设备模拟、请求签名等核心技术,实现一个完整的抖音无水印视频爬虫系统。本文仅供技术学习和个人备份使用,请勿将爬取的内容用于商业用途或侵犯他人版权,爬取频率请控制合理范围内。目录一、前言二、技术栈概览三、准备工作3.1 环境搭建3.2 抓包分析步骤3.3 关键API发现四、核心技术解密4.1 X-Gorgon签名算法。

2201_76125261的博客 846

android 高德地图 api

我整理的一些关于【API,XML】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/Hpqqk2使用高德地图 API 开发 Android 应用的入门指南 高德地图是一个功能强大且广泛应用于中国的地图服务。通过高德地图 API,开发者能够轻松地将地图功能集成到 Android ...

weixin_40634519的博客 254

最新Python爬虫实战(入门爬虫篇)——案例20:某股票数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例针对某股票行情网的静态HTML页面,实现了全市场股票数据的全自动化爬取,覆盖了从抓包分析、请求模拟、数据解析到数据存储的完整爬虫流程,非常适合入门学习者巩固基础,核心知识点和实现要点总结如下:首先是页面分析的核心逻辑,静态HTML页面的数据爬取,核心在于通过浏览器开发者工具,完成完整的抓包分析和标签结构定位。我们不需要像动态页面那样找隐藏的API接口,只需要确认数据在主文档的HTML源码中,然后通过元素选择器,精准找到每个字段对应的标签,总结出统一的标签结构规律,就能实现批量数据提取。

努力让自己发光,对的人才能迎着光而来 19万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

js 调用android定位,基于html5+ 高德地图JS API使用安卓定位sdk用来进行定位

使用Native.js打开Android的H5辅助定位mui.plusReady(function() {if(plus.os.name == 'Android') {var AMapLocationClient =plus.android.importClass("com.amap.api.location.AMapLocationClient");var context = plus.andr...

weixin_35361584的博客 794

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

高德地图 Android API 的定位原理及使用方法

基站定位是根据通讯网络基站信息进行定位的方法,此定位方法需要有较丰富的基站地理信息数据支持。高德地图目前的基站数据库支持 GSM 网络和CDMA网络。 定位机制 Android 平台主要使用三个 Class 和一个 interface 访问定位功能: LocationManager 是定位的核心接口,应用程序首先调用 getSystemService,得到此类的实例,然后通过此类向系统申

api_autonavi的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android调用高德地图API实现定位

以下内容开发环境为:Android Studio+ API 23+AMap_Location_V3.5.0_20170731.jar 真机测试环境:华为 Android7.0 要实现高德地图API在android中实现定位需实现以下步骤: 获取高德地图应用Key及配置Key; 配置定位权限 开启定位服务,获取定位数据 第一:获取高德地图应用Key及配置Key。这...

baduiliao3311的博客 641

南邮Android Studio应用高德地图API获取SHA1码

这两天在做安卓实验,其中涉及到了高德地图API的使用,我在使用过程中发现输出结果为MD5验证失败,寻路失败的问题(忘记截图了)。然后我个人就去查阅高德地图API的guan'fan

m0_47193824的博客 352

高德地图安卓api实现GPS定会的回调方法

高德地图安卓api实现 @Override public void onLocationChanged(AMapLocation alocation) { if(mListener!=null && alocation!=null){ Double getLat = alocation.getLatitude(); Double getLon = alocation.getLongitu

u012574015的专栏 1788

Android使用高德地图API

1.引入高德地图 在工程级build.gradle文件中配置repositories,添加maven或jcenter仓库地址 allprojects { repositories { jcenter() maven { url "https://jitpack.io" } maven { url 'https://www.jitpack.io' } } } 在项目级build.gradle文件中引入高德依赖 android { def

qq_41247866的博客 1590
上一篇: android的LinearLayout杂记
下一篇: h3c和cisco开snmp
大大蘑菇猪
博客等级 码龄18年 1粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值