展会信息港展会大全

使用Android Google Map Api开发android地图应用的实例
来源:互联网   发布日期:2015-09-24 20:35:55   浏览:2228次  

导读:1、使用Android Google Map Api之前必须检测系统中是否安装了Google map 应用,检测方法如下:protected boolean checkGoogleMap(){lean isInstallGMap = false;ListPackageInfopacks = getPackag......

1、使用Android Google Map Api之前必须检测系统中是否安装了Google map 应用,检测方法如下:

protected boolean checkGoogleMap(){

lean isInstallGMap = false;

List<PackageInfo>

packs = getPackageManager().getInstalledPackages(0);

for ( int i = 0; i < packs.size(); i++) {

PackageInfo p = packs.get(i);

if (p.versionName == null) { // system packages

continue;

}

if ("com.google.android.apps.maps".equals(p.packageName)) {

isInstallGMap = true;

break;

}

}

return isInstallGMap;

}

2、当检测出系统中没有安装Google map 应用时,可以转向Web版的Google map 来访问,如下:

1 Intent it = new Intent(

2 Intent.ACTION_VIEW, Uri.parse(

3 "http://ditu.google.cn/maps?hl=zh&mrt=loc&q="+weiduExtra+",

4 "+jingduExtra+""));

5 startActivity(it);

6 注意:使用此方法需在AndroidManifest.xml中加入网络访问权限

7 <uses-permission android:name="android.permission.INTERNET">

8 </uses-permission>

3、当检测出系统中已经安装Google map 应用时,我们就可以使用Google map api 了,使用方法如下:

1)方法一:

Intent it = new Intent(

Intent.ACTION_VIEW, Uri.parse("geo:"+weiduExtra+",

"+jingduExtra));

startActivity(it);

注意:使用此方法需在AndroidManifest.xml中加入相应的访问权限

<uses-permission android:name="android.permission.

ACCESS_COARSE_LOCATION" />

<uses-permission android:name="android.permission.

INTERNET" />

2)方法二:

可以创建一个MapActivity的子类,将MapView显示于其上即可,可以用MapController来控制显示的坐标、地图模式和视野高度,处理起来非常简单。

public class MapTest extends MapActivity {

private MapView mapView;

private MapController mc;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.mapview);

mapView = (MapView) findViewById(R.id.map);

mapView.setTraffic( true);

mc = mapView.getController();

GeoPoint gp = new GeoPoint(( int) (30.659259 * 1000000),

( int) (104.065762 * 1000000)); // 地理坐标

mc.animateTo(gp);

mc.setZoom(12);

}

@Override

protected boolean isRouteDisplayed() {

return false;

}

}

public class MapTest extends MapActivity {

private MapView mapView;

private MapController mc;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.mapview);

mapView = (MapView) findViewById(R.id.map);

mapView.setTraffic( true);

mc = mapView.getController();

GeoPoint gp = new GeoPoint(( int) (30.659259 * 1000000),

( int) (104.065762 * 1000000)); // 地理坐标

mc.animateTo(gp);

mc.setZoom(12);

}

@Override

protected boolean isRouteDisplayed() {

return false;

}

}

mapview.xml内容如下:

Xml代码

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http:

// schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<com.google.android.maps.MapView android:id="@+id/map"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:enabled="true"

android:clickable="true"

android:apiKey="0mHnPl2NS9XPKx6pKwJriV2Wj-mEHSh71yyX_SQ"

/>

</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http:

// schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<com.google.android.maps.MapView android:id="@+id/map"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:enabled="true"

android:clickable="true"

android:apiKey="0mHnPl2NS9XPKx6pKwJriV2Wj-mEHSh71yyX_SQ"

/>

</RelativeLayout>

注意:

A、使用此方法需在AndroidManifest.xml中加入相应的访问权限。

<uses-permission android:name="

android.permission.ACCESS_COARSE_LOCATION" />

<uses-permission android:name="

android.permission.INTERNET" />;

B、你要申请一个自己的apiKey。

赞助本站

人工智能实验室

相关热词: Google Map Api android地图

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港