示例中心
功能在线体验
控制台
您现在的位置:

高德

更新时间:2018年05月30日

如果您在开发过程中遇到问题,请先查看以下Q&A,看看是否能解决,如果仍无法解决您的问题,请在页面底部申请提交工单。

Web开发常见问题

Q: 我在官网申请了JavaScript API的Key ,使用的时候会报INVALID_USER_DOMAIN的错误

Q: 为什么我的浏览器总是定位失败?

Q: 为什么点标记在地图缩放后,偏离原来的位置?

更多Web开发常见问题>>

Q: 我在官网申请了JavaScript API的Key ,使用的时候会报INVALID_USER_DOMAIN的错误

请先检查一下您在申请Key的时候,是否设置了域名白名单,如果设定了,建议您在本地调试的时候先将白名单去掉,因为白名单的作用是您的网站上线以后,Key只有在您设定的域名下才有效,别人拿到您的Key也无法正常使用,起到一定的保护作用。

Q:为什么我的浏览器总是定位失败?

浏览器定位插件,封装了标准HTML5定位,并且包含纠偏模块。 浏览器定位基于HTML5定位服务,所以浏览器定位插件仅适用于支持HTML5的浏览器,包括Internet Explorer 9及以上、Firefox、Chrome、Safari 以及 Opera 等。同时,需要浏览器允许定位。Geolocation依赖浏览器本身,浏览器会对定位结果有直接影响,因此会出现定位失败的情况。当浏览器原生定位接口定位失败后,系统会调用IP定位,返回定位点所在城市中心点。此时,定位精度范围返回“null”,详见论坛。

Q: 为什么点标记在地图缩放后,偏离原来的位置?

在地图上添加某个坐标的点标记,如果点标记的图片大小不是API默认图片大小(36*36),需要根据点标记图片大小设置偏移量。偏移量设置方法请参考开发指南

Android开发常见问题

Q: Android错误码1008、32和7;错误提示invalid_user_scode;返回Key鉴权失败的解决办法

Q: 如何获取注册高德Key使用的SHA1值与包名?

Q: 返回的错误码是什么意思?该怎么办?

更多Android开发常见问题>>
Q: Android错误码1008、32和7;错误提示invalid_user_scode;返回Key鉴权失败的解决办法

检查SHA1值:

第一步:获取APK当前签名文件的SHA1

a.请参考工单高频问题提供的SHA1值获取方式取得您APK当前使用的SHA1值。

b.也可以向程序中添加以下代码段获取当前APK使用的签明文件SHA1

近期SDK会支持getSHA1()方法,专用于获取APK当前所签签名文件的SHA1值。

publicstatic String sHA1(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
            context.getPackageName(), PackageManager.GET_SIGNATURES);
        byte[] cert = info.signatures[0].toByteArray();
        MessageDigest md = MessageDigest.getInstance("SHA1");
        byte[] publicKey = md.digest(cert);
        StringBuffer hexString = new StringBuffer();
        for (int i = 0; i < publicKey.length; i++) {
            String appendString = Integer.toHexString(0xFF & publicKey[i])
                .toUpperCase(Locale.US);
            if (appendString.length() == 1)
                hexString.append("0");
            hexString.append(appendString);
        }
        return hexString.toString();
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return null;
}

第二步:SHA1对比

官网控制台里找到您使用的Key,查看其当前填写的SHA1值与第一步获取的SHA1值是否匹配(debug或者release至少有一个与第一步获取的SHA1一致),请注意不能带有空格,SHA1严格校验大小写。

第三步:确保SHA1值一致,如不一致请调整一致。

确保包名一致:

包名应该与AndroidManifest.xml配置文件的package属性内容相一致,如不一致请调整。

Key值填写位置:

a.通过AndroidManifest.xml配置Key

<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="key" >//开发者申请的Key
</meta-data>

meta-data标签位置需要在application标签内部。

b.通过setKey(String key);接口设置Key

Q:如何获取注册高德Key使用的SHA1值与包名?

获取应用包名

打开Android 应用工程的 AndroidManifest.xml配置文件,package 属性所对应的内容为应用包名。

获取SHA1值

首先,绝大多数App在调试时使用的签名文件(debug keystore)和最终App发布使用的签名文件(自定义的keystore)是不同的,不同签名文件的SHA1值也是不同的。下面提供几种获取SHA1值的方式:

通过Eclipse编译器获取SHA1

使用 adt 22 以上版本,可以在 eclipse 中直接查看。

Windows:依次在 eclipse 中打开 Window -> Preferances -> Android -> Build。

Mac:依次在 eclipse 中打开 Eclipse/ADT->Preferances -> Android -> Build。

在弹出的 Build 对话框中 “SHA1 fingerprint” 中的值即为 Android 签名证书的 Sha1 值,如下图所示:

通过Android Studio编译器获取SHA1

第一步、打开Android Studio的Terminal工具

第二步、输入命令:keytool -v -list -keystore keystore文件路径

第三步、输入Keystore密码

使用 Keytool(jdk自带工具)获取SHA1

按照如下步骤进行操作:

1.运行进入控制台。

2.在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。

3.继续在控制台输入命令。

debug.keystore:命令为:keytool -list -v -keystore debug.keystore

自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore

如下所示:

提示输入密钥库密码,编译器提供的debug keystore默认密码是 android,自定义签名文件的密码请自行填写。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 SHA1 值,如下图所示:

说明:keystore 文件为 Android 签名证书文件。

Q: 返回的错误码是什么意思?该怎么办?

请查看错误码表了解所有错误码反应的问题及解决办法。

iOS开发常见问题

Q: 如何获取iOS Bundle identifier?

Q: 地图显示时,弹出“INVALID_USER_SCODE”,如何解决?

Q: 返回的错误码是什么意思?该怎么办?

更多iOS开发常见问题>>

Q: 如何获取iOS Bundle identifier?

Xcode切换到Info下,查看Bundle identifier。黑色和灰色的文字都要复制下来喔。

Q:如何获取注册高德Key使用的SHA1值与包名?

弹出“INVALID_USER_SCODE”表示所申请的Key未绑定正确的安全码,需重新申请Key,方法请参考:http://lbs.amap.com/api/ios-sdk/guide/key/

Q: 返回的错误码是什么意思?该怎么办?

请查看错误码表了解所有错误码反应的问题及解决办法。

云图开发常见问题

Q: 为何使用我的Key请求云图存储服务显示服务不存在(SERVICE_NOT_EXIST)?

Q: 为何向云图里上传一条数据(创建数据)却返回参数缺失或格式非法提示?

Q: 云图层和云检索区别是什么?

更多云图开发常见问题>>

Q: 为何使用我的Key请求云图存储服务显示服务不存在(SERVICE_NOT_EXIST)?

请按照以下步骤排查:

1.确认您所申请的密钥(Key)为 Web服务API;

2.请确认在[开放平台官网_控制台]开启Key的云存储服务,操作如下:

Q:为何向云图里上传一条数据(创建数据)却返回参数缺失或格式非法提示?

请先对照云存储API参考手册,检查所有的必填参数是否填写正确,POST格式为x-www-form-urluncoded(表单格式),且其中的data参数是json格式;若上传的数据使用经纬度模式,请检查经纬度的经度,纬度是否传值颠倒,正确格式:104.394729,31.125698。

Q: 云图层和云检索区别是什么?

云图层是图层,我们将你上传的云图数据管理台的数据渲染成图层叠加到地图上,云检索得到的是数据,用户可以对这些数据添加点标记和信息窗体。

室内地图开发常见问题

Q: 高德室内地图开放模式是什么?

Q: 如何申请使用高德已有的室内地图数据?

Q: Android室内地图SDK运行时提示service_no_response,如何处理?

Q: Android室内地图SDK运行时提示NETWORK_ERROR,如何解决?

Q: iOS支持WIFI室内定位吗?

更多室内地图开发常见问题>>

Q: 高德室内地图开放模式是什么?

高德室内地图开放包括提供室内地图开放产品,提供高德已覆盖室内地图数据,以辅助用户搭建各自的室内地图业务应用。室内地图开放产品移动端、PC端全覆盖,包括移动端室内地图SDK、室内定位SDK,PC端室内地图JS API。

Q: 如何申请使用高德已有的室内地图数据?

高德已覆盖全国包括商场、交通枢纽、医院、展馆等各种类型在类的千余栋室内建筑数据,可通过高德LBS官网在线申请已覆盖的室内数据。点击申请

Q: Android室内地图SDK运行时提示service_no_response,如何处理?

请使用keytool -v -list -keystore keystore路径确定输出的签名算法名称项必须是SHA1withRSA,如果不是请点击 签名生成方法参考修改。 确保生成sha1的keystore是位于demo根目录下的。如果用户使用别的路径的keystore,请修改demo的build.gradle中的signingConfigs结构。使用者要确保为程序签名的keystore文件、生成sha1的keystore文件、申请Key的sha1码、AndroidManifest.xml中填写的Key 保持一致。

Q: Android室内地图SDK运行时提示NETWORK_ERROR,如何解决?

此错误码代表:网络错误。请确认如下内容:1)网络连接通畅;2)所使用的key有室内地图数据访问权限,如无权限,请点击申请

Q: iOS支持WIFI室内定位吗?

iOS不支持WIFI室内定位,仅支持蓝牙室内定位,即ibeacon。这主要受限于iOS系统本身,高德iOS室内定位SDK支持蓝牙室内定位。点击查看详细介绍和说明

  • 如以上内容仍不能解决您的疑问,请提交工单,我们将在2个工作日内回复您的问题。请写明API/SDK版本号、手机型号、手机系统版本号、问题接口、使用场景、问题描述、日志信息等信息,以便我们更清楚您的需求。
    image
示例中心 功能
在线体验
常见问题