android开发之学会使用百度地图

使用地图的目的

现在开发android应用,许多时候都会遇到要使用地图,因此,掌握地图的开发是必须的。我也一直想学学如何使用地图,于是趁有时间,就认真学了一遍使用地图。呵呵,感觉蛮爽。下面我们就以百度地图的使用为例,讲解如何使用地图。

准备工作

使用百度地图前先要申请密钥(API Key)
打开电脑浏览器:百度首页更多-->站长与开发者服务(APIStore 点击进入)-->地图-->百度地图-->进入官网【 http://developer.baidu.com/map/
在这个官网,我们先要注册成为开发者,然后才能申请密钥,申请密钥在官网首页的最下面,看到了点击,然后进入:


创建应用点击之后,会有空让我们填。应用名称随便填(最好填新建的android项目名 如helloworld),应用类型选择Android SDK。最重要的就是安全码填写,它由【数字签名;包名】这种格式组成。数字签名:点击eclipse中的Window-->Preferences



箭头所指的SHA1后面的一串字符就是我们需要的数字签名,包名就是andorid项目AndroidManifest.xml中package后面的一串字符:


填好之后就能获得百度地图的密钥(API Key 简称AK),如下图:


密钥搞定,再去把百度地图Android SDK下载,放到项目中就可以进行百度地图的开发了。

下载百度地图Android SDK
还是在:百度首页更多-->站长与开发者服务(APIStore 点击进入)-->地图-->百度地图-->进入官网【 http://developer.baidu.com/map/】,官网下面有一个Android开发,点击SDK下载:


SDK开发包的功能可自由组合,我就选了一个基础地图--->点击开发包-->然后就下了。解压缩会有一个libs文件夹,里面文件位置别动,就按这个位置放到android项目中的libs包下SDK就导入成功了。
  ————>      

然后,我们就可以顺利的使用百度地图开发啦!

使用百度地图

1.在AndroidManifest.xml中添加开发秘钥和所需权限。
<application  
        android:allowBackup="true"  
        android:icon="@drawable/ic_launcher"  
        android:label="@string/app_name"  
        android:theme="@style/AppTheme" >  
        <meta-data  
            android:name="com.baidu.lbsapi.API_KEY"  
            android:value="填写你申请的AK" />  
权限:
            <!-- 百度API所需权限 -->  
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />  
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />  
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />  
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />  
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />  
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
2. 在布局文件中添加地图控件:
<com.baidu.mapapi.map.MapView  
        android:id="@+id/bmapview"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:clickable="true" />  
3.修改MainActivity.java
package com.example.maptest;

import java.util.ArrayList;
import java.util.List;

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMap.OnMapDrawFrameCallback;
import com.baidu.mapapi.map.BaiduMap.OnMarkerDragListener;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.Stroke;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;

public class MainActivity extends Activity {

	MapView mMapView = null;
	BaiduMap mBaiduMap = null;
	Marker marker = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		SDKInitializer.initialize(getApplicationContext()); 
		setContentView(R.layout.activity_main);
		mMapView = (MapView) findViewById(R.id.bmapView); 
		mBaiduMap = mMapView.getMap();
		mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//显示普通2D图
        //mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//显示卫星图		
		//mBaiduMap.setTrafficEnabled(true);//开启交通图
		//mBaiduMap.setBaiduHeatMapEnabled(true);//开启百度热力图
		
		LatLng point = new LatLng(39.963175, 116.400244);//定义marker坐标
		BitmapDescriptor bitmap1 = BitmapDescriptorFactory
				.fromResource(R.drawable.zzlx1);//构建一个位图marker图标
		BitmapDescriptor bitmap2 = BitmapDescriptorFactory
				.fromResource(R.drawable.zzlx2);
		BitmapDescriptor bitmap3 = BitmapDescriptorFactory
				.fromResource(R.drawable.zzlx3);
		//OverlayOptions option = new MarkerOptions()
		//.position(point).icon(bitmap);//构建一个MarkerOption对象
		//mBaiduMap.addOverlay(option);//在百度地图上添加marker,并显示
		
		//OverlayOptions option = new MarkerOptions()
		//.position(point).icon(bitmap).zIndex(9).draggable(true);
		//mBaiduMap.addOverlay(option);
		
		//自v3.3.0版本起,SDK提供了给Marker增加帧动画的能力,具体实现方法如下: 
//		ArrayList<BitmapDescriptor> giflist = new 
//				ArrayList<BitmapDescriptor>();
//		giflist.add(bitmap1);
//		giflist.add(bitmap2);
//		giflist.add(bitmap3);
//		
//		OverlayOptions option = new MarkerOptions()
//		.position(point).icons(giflist).draggable(true)
//		.zIndex(9).period(6);
//		mBaiduMap.addOverlay(option);
		
		//几何图形覆盖物(多边形 为例)
//		LatLng pt1 = new LatLng(39.93923, 116.357428);
//		LatLng pt2 = new LatLng(39.91923, 116.327428);
//		LatLng pt3 = new LatLng(39.89923, 116.347428);
//		LatLng pt4 = new LatLng(39.89923, 116.367428);
//		LatLng pt5 = new LatLng(39.91923, 116.387428);
//		List<LatLng> pts = new ArrayList<LatLng>();
//		pts.add(pt1);
//		pts.add(pt2);
//		pts.add(pt3);
//		pts.add(pt4);
//		pts.add(pt5);
//		//构建用户绘制多边形的Option对象
//		OverlayOptions polygonOption = new PolygonOptions()
//		.points(pts).stroke(new Stroke(5, 0xAA00FF00)).fillColor(0XAAFFFF00);
//		mBaiduMap.addOverlay(polygonOption);//百度地图绘制多边形,并显示
		
		//文字覆盖物
		LatLng text = new LatLng(39.86923, 116.397428);
		OverlayOptions textOption = new TextOptions()
		.bgColor(0xaaffff00).fontSize(24).fontColor(0xffff00ff)
		.text("此树是我栽,此路是我开!").rotate(-30).position(text);
		mBaiduMap.addOverlay(textOption);
		}	
}

4.运行程序,就可以看到百度地图的一些效果啦!
注意:MainActivity.java中这些代码都是我按照百度的范例写的,你也可以只在MainActivity.java中添两行代码运行程序看效果:
protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		SDKInitializer.initialize(getApplicationContext()); 
		setContentView(R.layout.activity_main);
		mMapView = (MapView) findViewById(R.id.bmapView); 
	}

补充:

(1)这里我只简单的学习了百度地图,要想熟练使用,还需多多实战才行!
(2)没事一步一步学,网址: 百度地图SDK的使用,把下图中的红框内容看一遍基本就差不多了,然后就是不断使用直到熟练运用它。


      

















JFM7VX690T型SRAM型现场可编程门阵列技术手册主要介绍的是上海复旦微电子集团股份有限公司(简称复旦微电子)生产的高性能FPGA产品JFM7VX690T。该产品属于JFM7系列,具有现场可编程特性,集成了功能强大且可以灵活配置组合的可编程资源,适用于实现多种功能,如输入输出接口、通用数字逻辑、存储器、数字信号处理和时钟管理等。JFM7VX690T型FPGA适用于复杂、高速的数字逻辑电路,广泛应用于通讯、信息处理、工业控制、数据中心、仪表测量、医疗仪器、人工智能、自动驾驶等领域。 产品特点包括: 1. 可配置逻辑资源(CLB),使用LUT6结构。 2. 包含CLB模块,可用于实现常规数字逻辑和分布式RAM。 3. 含有I/O、BlockRAM、DSP、MMCM、GTH等可编程模块。 4. 提供不同的封装规格和工作温度范围的产品,便于满足不同的使用环境。 JFM7VX690T产品系列中,有多种型号可供选择。例如: - JFM7VX690T80采用FCBGA1927封装,尺寸为45x45mm,使用锡银焊球,工作温度范围为-40°C到+100°C。 - JFM7VX690T80-AS同样采用FCBGA1927封装,但工作温度范围更广,为-55°C到+125°C,同样使用锡银焊球。 - JFM7VX690T80-N采用FCBGA1927封装和铅锡焊球,工作温度范围与JFM7VX690T80-AS相同。 - JFM7VX690T36的封装规格为FCBGA1761,尺寸为42.5x42.5mm,使用锡银焊球,工作温度范围为-40°C到+100°C。 - JFM7VX690T36-AS使用锡银焊球,工作温度范围为-55°C到+125°C。 - JFM7VX690T36-N使用铅锡焊球,工作温度范围与JFM7VX690T36-AS相同。 技术手册中还包含了一系列详细的技术参数,包括极限参数、推荐工作条件、电特性参数、ESD等级、MSL等级、重量等。在产品参数章节中,还特别强调了封装类型,包括外形图和尺寸、引出端定义等。引出端定义是指对FPGA芯片上的各个引脚的功能和接线规则进行说明,这对于FPGA的正确应用和电路设计至关重要。 应用指南章节涉及了FPGA在不同应用场景下的推荐使用方法。其中差异说明部分可能涉及产品之间的性能差异;关键性能对比可能包括功耗与速度对比、上电浪涌电流测试情况说明、GTH Channel Loss性能差异说明、GTH电源性能差异说明等。此外,手册可能还提供了其他推荐应用方案,例如不使用的BANK接法推荐、CCLK信号PCB布线推荐、JTAG级联PCB布线推荐、系统工作的复位方案推荐等,这些内容对于提高系统性能和稳定性有着重要作用。 焊接及注意事项章节则针对产品的焊接过程提供了指导,强调焊接过程中的注意事项,以确保产品在组装过程中的稳定性和可靠性。手册还明确指出,未经复旦微电子的许可,不得翻印或者复制全部或部分本资料的内容,且不承担采购方选择与使用本文描述的产品和服务的责任。 上海复旦微电子集团股份有限公司拥有相关的商标和知识产权。该公司在中国发布的技术手册,版权为上海复旦微电子集团股份有限公司所有,未经许可不得进行复制或传播。 技术手册提供了上海复旦微电子集团股份有限公司销售及服务网点的信息,方便用户在需要时能够联系到相应的服务机构,获取最新信息和必要的支持。同时,用户可以访问复旦微电子的官方网站(***以获取更多产品信息和公司动态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值