百度地图开发怎么申请密钥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度地图开发怎么申请密钥相关的知识,希望对你有一定的参考价值。

参考技术A

百度地图开发怎么申请密钥

:developer.baidu./map/index.php?title=androidsdk/guide/key
可以参考。。

在百度地图的右上角,点击“地图API”。
在地图API页面,把鼠标移动到“工具”菜单项,在下拉菜单中选择“坐标拾取工具”。
比如在搜索栏输入“百度大厦”点击搜索,就会在地图上出现相应的标记,点击你要找的某一个,就能看到相应的坐标。
同理,把找到的坐标输入到搜索栏,把后面“坐标反查”给勾上,点击搜索,就会对应的坐标打上标记,同时会有相应地址在最右边。
同时,把鼠标在地图上滑行,就可以看到,鼠标滑到每一个地方,都会对应显示坐标。

想要使用高德地图就必须要申请一个KEY,这没有原因,这就是高德硬性规定的。
现在我就用最通俗的语言,最严谨的思路跟大家一起探究怎么获取这个钥匙,以及相关的注意事项
step 1、 当然是先申请成为高德开发者了(省略......这都不会那真是可以右转德玛西亚了)
step 2、进入到自己的账号呢,右上角会有一个控制台的小按钮,点击进入控制台。中间有个获取KEY有木有?!好了,本课程到此结束,谢谢观赏
step 3、当你点击【获取KEY】之后就会出现一下界面了,依次输入应用名称、绑定的服务、同意使用条款。
step 4、当点击到绑定服务就会出现上面这个界面,输入发布版的安全码、调试版的安全码和package,package很简单就是manifest里面的package,但是SHA1是个什么鬼?该怎么获取呢?
step 5、获取SHA1之Eclipse和AS通用方法:【点这里】,其中需要注意的是:在发布正式版本的时候要把自己生成的签名key放在C:\\Users\\Administrator\\.android

:developer.baidu./map/index.php?title=androidsdk打开这个网址,里面有获取密钥的选项

一、首先打开百度地图,右上方找到“地图API”栏目

二、点开之后是百度开放平台,往下拉一点点,看到“申请密匙”点击进去。这个时候需要登录各位的百度账号才能进去哦~

三、进入之后会看到百度地图LBS开放平台。

1.选择“创建应用”

2.“应用名称”可以自己随意编辑,既然是百度地图,建议大家就写“地图”

3.“IP白名单”处建议大家就填0.0.0.0/0,方便在不同的电脑上操作

4.点击“提交”

四、提交之后会出现如下网页,访问应用(AK)处会出现一串数字字母代码。

五、这个就是我们要的密匙,把它再粘贴到自己创建的地图代码中去就好了!

首先打开百度地图,右上方找到“地图API”栏目 点开之后是百度开放平台,往下拉一点点,看到“申请密匙”点击进去。

随着地理信息的飞速发展,地图的应用也在不断变得高科技。目前市场上有很多地图公司。百度地图是百度提供的一项网络地图搜索服务,覆盖了国内近400个城市、数千个区县。在百度地图里,用户可以查询街道、商场、楼盘的地理位置,也可以找到离您最近的所有餐馆、学校、银行、公园等等。2010年,在使用百度地图服务时,除普通的电子地图功能之外,新增加了三维地图按钮。百度地图之地图开发API,可以提供免费的密钥,每个用户都可以申请。

android 百度地图开发

这是在百度地图中划线的例子,可以参考一下

百度地图开发问题

自己重新申请一个百度地图Key试试,现在申请百度地图需要绑定包名的
请采纳答案,支持我一下。
这样可以么?

Android 百度地图开发 怎么获得右

int tpSpan = mMapView.getLatitudeSpan(); 当前纬线的跨度(从地图的上边缘到下边缘)int lrSpan = mMapView.getLongitudeSpan(); 当前经度的跨度(从地图的左边缘到右边缘)
GeoPoint point = new GeoPoint(centerPoint.getLatitudeE6()- tpSpan / 2, centerPoint.getLongitudeE6() + lrSpan / 2); 右上角
GeoPoint point2 = new GeoPoint(centerPoint.getLatitudeE6()+ tpSpan / 2, centerPoint.getLongitudeE6() - lrSpan / 2); 左下角

安卓开发——在应用中简单调用Android百度地图API SDK

目录

需求展示

效果展示:

申请百度地图API密钥

配置ANDROID STUDIO

编写项目代码

 运行项目


需求展示

        利用百度地图API定位到当前所在位置,并显示所在的经纬度和地址信息。

效果展示:

申请百度地图API密钥

首先参考百度地图官方文档申请和注册密钥AK:androidsdk | 百度地图API SDK

在此获得包名:

输入申请到的SHA1码:

 如何获得SHA1码呢?

①首先找到SDK安装目录,找到.android,继续找到debug.keystore,生成绝对路径,我这里是D:\\androidsdk\\.android\\debug.keystore,复制待用。

②然后进入ANDROID STUDIO的终端Terminal,输入以下代码:

keytool -list -v -keystore 你自己的路径 -alias androiddebugkey

 输入默认密钥库口令:

android

 复制以下的SHA1码,黏贴到发布版SHA1码,生成百度控制台应用:

这样,百度地图API的密钥就申请完毕了。

配置ANDROID STUDIO

 复制AK码,黏贴到application标签内,activity标签外:

<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="开发者 key" />

下载开发SDK:SDK下载 - 百度LBS开放平台

选择基础定位功能和基础地图SDK选项:

选择jar包:

解压后黏贴到lib目录下,并将BaiduLBS_Android.jar包添加到依赖:

 以上,ANDROID STUDIO中的百度地图配置已经完成。

编写项目代码

编写MainActivity的代码:

public class MainActivity extends AppCompatActivity 
    LocationClient mLocationClient;  //定位客户端
    MapView mapView;  //Android Widget地图控件
    BaiduMap baiduMap;
    boolean isFirstLocate = true;
    TextView tv_Lat;  //纬度
    TextView tv_Lon;  //经度
    TextView tv_Add;  //地址
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        //如果没有定位权限,动态请求用户允许使用该权限
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) 
            ActivityCompat.requestPermissions(this, new String[]Manifest.permission.ACCESS_FINE_LOCATION, 1);
        else 
            requestLocation();
        
    
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) 
        switch (requestCode) 
            case 1:
                if (grantResults[0] != PackageManager.PERMISSION_GRANTED) 
                    Toast.makeText(this, "没有定位权限!", Toast.LENGTH_LONG).show();
                    finish();
                 else 
                    requestLocation();
                
        
    
    private void requestLocation() 
        initLocation();
        mLocationClient.start();
    
    private void initLocation()   //初始化
        mLocationClient = new LocationClient(getApplicationContext());
        mLocationClient.registerLocationListener(new MyLocationListener());
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);

        mapView = findViewById(R.id.bmapView);
        baiduMap = mapView.getMap();
        tv_Lat = findViewById(R.id.tv_Lat);
        tv_Lon = findViewById(R.id.tv_Lon);
        tv_Add = findViewById(R.id.tv_Add);
        LocationClientOption option = new LocationClientOption();
        //设置扫描时间间隔
        option.setScanSpan(1000);
        //设置定位模式,三选一
        option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
        /*option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);
        option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);*/
        //设置需要地址信息
        option.setIsNeedAddress(true);
        //保存定位参数
        mLocationClient.setLocOption(option);
    
    //内部类,百度位置监听器
    private class MyLocationListener  implements BDLocationListener 
        //获取纬度信息
        @Override
        public void onReceiveLocation(BDLocation bdLocation) 
            tv_Lat.setText(bdLocation.getLatitude()+"");
            tv_Lon.setText(bdLocation.getLongitude()+"");
            tv_Add.setText(bdLocation.getAddrStr());
            if(bdLocation.getLocType()==BDLocation.TypeGpsLocation ||
                    bdLocation.getLocType()==BDLocation.TypeNetWorkLocation)
                navigateTo(bdLocation);
            
        
    
    private void navigateTo(BDLocation bdLocation) 
        if(isFirstLocate)
            LatLng ll = new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude());
            MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
            baiduMap.animateMapStatus(update);
            isFirstLocate = false;
        
    
    @Override
    protected void onResume() 
        super.onResume();
        mapView.onResume();
    
    @Override
    protected void onPause() 
        super.onPause();
        mapView.onResume();
    
    @Override
    protected void onDestroy() 
        super.onDestroy();
        mLocationClient.stop();
        mapView.onDestroy();
    

编写activity_main.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <!--百度地图控件-->
    <com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" />
    <!--位置文本布局的背景色代码的前2位代码为透明度-->
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#e0000000"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="12dp"
            android:layout_marginTop="20dp"
            android:orientation="horizontal" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="纬度:"
                android:textColor="#ffffff"
                android:textSize="15dp" />
            <TextView
                android:id="@+id/tv_Lat"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=""
                android:textColor="#ffffff"
                android:textSize="15dp" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="12dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="经度:"
                android:textColor="#ffffff"
                android:textSize="15dp" />
            <TextView
                android:id="@+id/tv_Lon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=""
                android:textColor="#ffffff"
                android:textSize="15dp" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="12dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="地址:"
                android:textColor="#ffffff"
                android:textSize="15dp" />

            <TextView
                android:id="@+id/tv_Add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=""
                android:textColor="#ffffff"
                android:textSize="15dp" />
        </LinearLayout>
    </LinearLayout>
</FrameLayout>

 在manifest.xml中添加申请权限:

    package="edu.hubu.mydbs">
    <!-- 这个权限用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <!-- 这个权限用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <!-- 访问网络,网络定位需要上网-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在manifest.xml文件中的application标签中添加service声明:

<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"/>

 运行项目

        由于ANDRID STUDIO中的虚拟机通过网络定位,故运行项目后定位一直显示在不正确的位置。

故我选择了直接在手机上进行USB调试,使用了小米手机。

具体如何连接手机调试USB,我参考了下面这篇文章:

Android studio 连接手机调试_星夜之北的博客-CSDN博客

附上完整的代码:GitHubContribute to BakerStreetL/MyDBSbaidu development by creating an account on GitHub.https://github.com/BakerStreetL/MyDBSbaidu.git

以上是关于百度地图开发怎么申请密钥的主要内容,如果未能解决你的问题,请参考以下文章

Android 百度地图开发

如何注册和获取百度地图的密钥

百度地图API的基本用法

如何申请百度API密钥 下面5个步骤帮你解决

安卓开发——在应用中简单调用Android百度地图API SDK

如何调用百度地图API