基于位置应用(LBS)伴随着无线的发展越来越走入大家的生活,在无线应用中这类应用也越来越多,而地图作为一个重要部分与基于位置的应用密不可分,这篇文章总结了在学习android基于位置的应用时遇见的问题和学习心得。
1)注册google地图API密钥:
keytool –alias androiddebugkey –keystore “keystore file path” –storepass android –keypass android
在Google网站上注册Map-API:
https://developers.google.com/android/maps-api-signup?hl=zh-CN
见下图:
2)创建android工程,修改android描述文件:
注意:
新建的android选择Google APIs(android+google api),不要使用Android作为target;
修改描述文件:
在Application中添加user-liberary,
<uses-library android:name="com.google.android.maps" />
添加user-permission,
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
修改后的文件如下:
3)创建layout文件:
创建如下的layout文件,Google提供的MapView对地图做了很好的封装,建议在应用中使用MapView完成地图控件,注意[color=red]设置MapView的clickable属性为true,否则的MapView中的地图不允许拖动[color];
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/zoomin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clickHandler"
android:padding="12dp"
android:text="+" />
<Button
android:id="@+id/zoomout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clickHandler"
android:padding="12dp"
android:text="-" />
<Button
android:id="@+id/Satellites"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clickHandler"
android:padding="6dp"
android:text="Satellites" />
<Button
android:id="@+id/Street"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clickHandler"
android:padding="6dp"
android:text="Street" />
<Button
android:id="@+id/Traffic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clickHandler"
android:padding="6dp"
android:text="Traffic" />
<Button
android:id="@+id/Normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clickHandler"
android:padding="6dp"
android:text="Normal" />
</LinearLayout>
<com.google.android.maps.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="your api key"
android:clickable="true" />
</LinearLayout>
4)创建新的Activity:
创建一个新的Activity,
该Activity继承MapActivity,这里的实例类实现了地图的缩放,显示卫星地图,显示街道这些功能,代码如下所示:
package com.local;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;
import android.view.View;
public class MapViewActivity extends MapActivity {
MapView mapView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.map);
mapView.getController()
.setCenter(
new GeoPoint((int) (31.220000 * 1E6),
(int) (121.480000 * 1E6)));
mapView.getController().setZoom(10);
}
public void clickHandler(View target) {
switch (target.getId()) {
case R.id.zoomin:
mapView.getController().zoomIn();
break;
case R.id.zoomout:
mapView.getController().zoomOut();
break;
case R.id.Satellites:
mapView.setSatellite(true);
break;
case R.id.Street:
mapView.setStreetView(true);
break;
case R.id.Traffic:
mapView.setTraffic(true);
break;
case R.id.Normal:
mapView.setSatellite(false);
mapView.setStreetView(false);
mapView.setTraffic(false);
break;
}
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
代码运行结果如下所示:
- 大小: 44.3 KB
- 大小: 58 KB
- 大小: 85 KB
分享到:
相关推荐
总结,`MapView`是Android应用中实现地图功能的核心组件,通过合理的布局、初始化、生命周期管理和事件监听,开发者可以构建出丰富多样的地图应用,满足用户的导航、定位、地图信息查询等多种需求。在实际开发中,...
在 Android 开发中,位置服务是一项重要的功能,能够提供与空间位置相关的综合应用服务。位置服务结合了 GPS 定位、移动通信、导航等多种技术,能够提供定位、追踪和敏感区域警告等一系列服务。在 Android 平台上,...
Android MapView 应用,基于Android开发,应用Android SDK 1.5
位置服务(Location-Based Services,LBS)是一种结合了GPS定位、移动通信和导航技术的服务,它能够提供与用户位置相关的各种应用。自2001年起,日本的DoCoMo和KDDI分别推出了具备定位功能的设备,标志着LBS的商业化...
"Android小项目开发示例大全--20个通用具体应用程序实例源码"提供了丰富的实践素材,涵盖了多个重要且实用的功能模块,旨在帮助开发者提升技能,理解Android应用开发的各个环节。这些项目示例包括了播放器、谷歌地图...
这个“android应用源码--shp文件的可视化与编辑.rar”文件提供了在移动设备上处理这种文件类型的解决方案。下面将详细介绍这个项目涉及的关键知识点。 1. **Shapefile格式**: - Shapefile是由Esri公司创建的一种...
- **MapFragment或MapView**: Android应用中展示地图的组件,MapFragment适用于已存在Fragment的场景,MapView则包含完整的地图控件。 - **地图加载与显示**: 设置地图类型(如卫星图、普通地图),控制缩放级别,...
在本篇博客“Eclipse开发Android,Hello, MapView(学习5)”中,我们将探讨如何在Android开发环境中使用Eclipse集成开发环境(IDE)来创建一个简单的应用程序,该程序展示了一个显示地图的MapView。这个过程涉及到...
首先,要在Android应用中使用`MapView`,必须在`AndroidManifest.xml`文件中添加必要的配置。在`<application>`标签内,你需要引入Google Maps库,如以下代码所示: ```xml <uses-library android:name=...
然而,由于天地图是中国本土的服务,因此可能需要使用专门的SDK或API,这在提供的压缩包文件`tianditudemo1`中可能有所体现,它可能包含了天地图Android SDK的相关文件。 集成天地图的第一步通常是申请API密钥。你...
在Android开发中,`MapView`是Google Maps Android API提供的重要组件,它允许开发者在应用程序中嵌入交互式地图。这个`MapView`地图测试是开发者在实际项目中进行地图功能调试和展示的一个常见实践。下面我们将深入...
在Android平台上,位置服务与地图应用是开发移动应用不可或缺的一部分,尤其对于提供导航、本地搜索、社交等功能的应用来说,它们的重要性不言而喻。本文将深入探讨这两个关键领域,包括如何利用Google Maps API以及...
在Android平台上,开发室内地图应用时,我们常常会用到一个关键的控件——MapView。MapView是Google Maps Android API提供的一种组件,它允许开发者在应用程序中集成地图功能,展示地图数据,实现地图的缩放、平移、...
本书采用Head First系列图书特有的趣味性教学方法,通过丰富的插图、对话、游戏等元素让读者在轻松愉快的氛围中掌握Android应用开发的核心技术。 #### 二、Android开发基础 1. **环境搭建**: - 安装Java ...
基于Android平台的移动位置服务的开发与实现是一个涵盖了多种技术和应用设计的概念,涉及到智能手机平台的高级功能、应用程序架构的理解以及具体实现技术的掌握。本文旨在深入解析这一主题,重点阐述Android平台上的...
在Android平台上进行百度地图开发是一项常见的任务,...在Android应用开发中,这样的自定义能力是提高用户体验和产品差异化的重要手段。请确保在实际开发中遵循百度地图的API使用规范,以确保应用的稳定性和兼容性。
在Android应用开发中,集成高德地图并利用KML(Keyhole Markup Language)文件来展示地理数据是一项常见的任务。KML是一种XML格式,用于描述2D和3D地理空间数据,广泛应用于Google Earth、Google Maps以及高德地图等...
这些是Android应用开发中非常重要的组成部分,对于提升开发者的技术能力和打造功能丰富的应用程序至关重要。 首先,让我们详细了解一下蓝牙通信。蓝牙技术允许设备之间进行短距离无线通信,这对于许多应用场景,如...