Google Map API V2

以后如果要开发包含google map的程序就更麻烦咯
[url]http://www.cnblogs.com/mengdd/archive/2013/01/01/2841390.html[/url]

找到篇不错的文章,大家可以参考一下
[url]http://blog.sina.com.cn/s/blog_c2839d410101jahv.html[/url]

1. 创建Android工程
由于v2的key需要Google Play Service的支持,所以创建的工程需要将其引入

2. 获得keystore的SHA-1的fingerprint
%JAVA_HOME%\bin\keytool -list -v -keystore .android\debug.keystore
(Release时换成相应的keystore)

3. 获得Google Map API Key
打开[url]https://code.google.com/apis/console[/url]并登录(第一次登录会提示创建API Project)
导航栏点击Services,找到Google Maps Android API v2,设置成ON(设置后左侧导航栏的内容会增加)
导航栏点击API Access -> Create new Android Key
输入SHA-1的fingerprint和工程的包名,用分号分隔
点击Create后就可以获得Key了(会获得2个Key,一个是对应Android设备的,另一个是对应Browser的)

4. 修改AndroidManifest.xml
添加Permission

<permission
android:name="<your package name>.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />

<uses-permission android:name="<your package name>.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

添加API Key

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

...

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="<your API Key>" />
</application>


5. 在layout.xml上添加Google Map

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />

</RelativeLayout>


6. 控制Google Map
由于使用了Fragment,所以要继承FragmentActivity

public class MainActivity extends FragmentActivity implements
OnMapLongClickListener, OnMyLocationChangeListener {

private GoogleMap map;
private MarkerOptions destinationMarker;
private LatLng myLatLng;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Fragment fragmentMap = getSupportFragmentManager().findFragmentById(
R.id.map);
if (fragmentMap != null)
map = ((SupportMapFragment) fragmentMap).getMap();

if (map != null) {
map.setMyLocationEnabled(true);
map.setOnMyLocationChangeListener(this);
map.setOnMapLongClickListener(this);

// location lat lng
LatLng latLng = new LatLng(0, 0);
// add mark
destinationMarker = new MarkerOptions();
destinationMarker.position(latLng);
destinationMarker.title("test");
map.addMarker(destinationMarker);
// move camera
map.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 12f));
}
}

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

@Override
public void onMyLocationChange(Location loc) {
myLatLng = new LatLng(loc.getLatitude(), loc.getLongitude());
}

@Override
public void onMapLongClick(LatLng point) {
map.clear();
destinationMarker = new MarkerOptions();
destinationMarker.position(point);
map.addMarker(destinationMarker);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值