`
逐风林羽
  • 浏览: 34505 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[Android]googleMap的简单使用,地图定位,图标绘制。

阅读更多

    首先项目要设置成支持googlemap的api,在Project Build Target中选择google APIs。

 

    manifest需要加上权限设置。(写在</application>下)

      <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"/> 

 

    布局中加上mapview。 apikey需要自己去申请,具体在网上找教程很多。

<com.google.android.maps.MapView
    android:id="@+id/map"  
    android:apiKey="**********************************"      
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"   
    android:clickable="true" />

 

    初始化mapview

 

 

private void initMapView() {
		map = (MapView) findViewById(R.id.map);
		projection = map.getProjection();
		mapControlle = map.getController();
		map.setTraffic(false);// 交通模式
		map.setSatellite(false);// 卫星模式
		map.setBuiltInZoomControls(true);// 打开缩放控件
	}

 

    定位我的位置

 

showLocation(getCurrentGeoPoint());//我的位置

// 定位
	private void showLocation(GeoPoint location) {
		if (null != location) {
			mapController.animateTo(location);
			mapController.setZoom(15);//缩放等级1-21
		}
	}


// 获得当前经纬度并返回GeoPoint对象
	private GeoPoint getCurrentGeoPoint() {
		LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		Location location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
		return new GeoPoint((int) (location.getLatitude() * 1e6),
				(int) (location.getLongitude() * 1e6));
	}

 

   添加目的地(另一个经纬度坐标)

    初始化定位信息

   GeoPoint endGeoPoint = new GeoPoint(39950017,116310144);

 
private void initLocation() {
                final MyLocationOverlay overlay;
		overlay = new MyLocationOverlay(this, map);	//建地图层
                overlay.enableMyLocation(); // 监听来自位置的更新
		overlay.runOnFirstFix(new Runnable() {		//每次更新执行
			public void run() {
			mapController.setZoom(17);	//缩放
			mapController.animateTo(overlay.getMyLocation());	//指定地图显示所在位置
			}
		});
		map.getOverlays().add(overlay);	//将定位层加入坐标层中
                map.getOverlays().add(new PointOverlay(endGeoPoint));	//加入终点图标
	} 

 

 

//绘制图标,将这个类的对象加入Overlays中,自动调用draw方法

        private Projection projection;

	class PointOverlay extends Overlay {

		private GeoPoint geoPoint;

		public PointOverlay() {

		}

		public PointOverlay(GeoPoint geoPoint) {

			this.geoPoint = geoPoint;

		}

		public void draw(Canvas canvas, MapView mapv, boolean shadow) {

			super.draw(canvas, mapv, shadow);

			Point point = new Point();

			projection.toPixels(geoPoint, point);

			Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.arrow_add);

			Paint paint = new Paint();

			canvas.drawBitmap(bmp, point.x, point.y, paint);

		}

	}
 

 

   这样在布局中加两个按钮点击后调用showLocation就可以实现将地图定位到指定地点。显示定位地点图标。

4
2
分享到:
评论
3 楼 luwies 2012-09-07  
O(∩_∩)O谢谢:oops: 真是大写的,我太不小心了,这个apiKey居然是不能用Alt+/调出来的。。。
2 楼 逐风林羽 2012-09-07  
luwies 写道
请教一下,我用的是Google APIs[Android 4.1],按照您的文章写了一下这个工程。
<com.google.android.maps.MapView 
    android:id="@+id/map"   
    android:apiKey="**********************************"       
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"    
    android:clickable="true" /> 
apikey的内容我已经替换成我自己的了。
在这个代码中有这样的一个错误,--->>>error: No resource identifier found for attribute 'apikey' in package 'android'
我的AndroidManifest.xml如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.googlemap"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
    <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"/>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library android:name="com.google.android.maps"
            android:required="true"/>
        <activity
            android:name=".GoogleMapActivity"
            android:label="@string/title_activity_google_map" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>   
</manifest>
  希望您能帮我解决一下这个问题。。。O(∩_∩)O谢谢

有点需要看一下 注意android:apiKey的拼写,要注意大小写。我用的是GoogleAPIs 2.2 你也换下api试一下。如果是key值不对 不会报出异常,只是无法显示地图层。你再看一下。
1 楼 luwies 2012-09-07  
请教一下,我用的是Google APIs[Android 4.1],按照您的文章写了一下这个工程。
<com.google.android.maps.MapView 
    android:id="@+id/map"   
    android:apiKey="**********************************"       
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"    
    android:clickable="true" /> 
apikey的内容我已经替换成我自己的了。
在这个代码中有这样的一个错误,--->>>error: No resource identifier found for attribute 'apikey' in package 'android'
我的AndroidManifest.xml如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.googlemap"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
    <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"/>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library android:name="com.google.android.maps"
            android:required="true"/>
        <activity
            android:name=".GoogleMapActivity"
            android:label="@string/title_activity_google_map" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>   
</manifest>
  希望您能帮我解决一下这个问题。。。O(∩_∩)O谢谢

相关推荐

    Android Google地图的使用

    你可以创建`MarkerOptions`对象,设置其位置、标题、图标等属性,然后通过`GoogleMap.addMarker()`方法将标记添加到地图上。例如,要创建一个位于特定经纬度的标记,你可以这样写: ```java MarkerOptions marker =...

    精心收集的android googlemap开发实例与教程

    通过这个"android googlemap开发实例与教程",开发者不仅能学习到基础的Google Maps API使用方法,还能深入理解如何结合GPS定位和地图数据来打造功能丰富的地图应用。无论是初学者还是有经验的开发者,都能从中受益...

    Android Google Map 总结

    使用GoogleMap对象的setMapType方法可选择显示不同类型的地图,如普通地图、卫星图、地形图等。通过setMyLocationEnabled(true)开启用户位置追踪,显示蓝点。 5. **添加Marker** Marker是地图上的图标,可以表示...

    Android googlemap 初学

    在这里,你可以获取到GoogleMap对象,进一步操作地图,例如设置初始位置、缩放级别,或者添加标记。 关于GPSTest,这是一个常见的Android GPS测试应用的名字,它通常用于测试设备的GPS接收器功能。在Android中,你...

    GoogleMap的简单使用

    "GoogleMap的简单使用"这个主题主要涵盖了如何在Android应用中引入和操作Google Maps API,以实现地图浏览、定位、标注等功能。这里我们将深入探讨如何在Android项目中集成Google Maps SDK,并进行基本的操作。 ...

    Android Google地图定位添加标记DOME

    本Dome主要针对Android Google地图定位以及添加多个标记并设置路线进行详细讲解。 首先,我们需要在项目中引入Google Maps Android API的相关依赖。在`build.gradle`文件中添加Google Play Services的依赖,如: `...

    google-map.rar_android_google map Android

    在Android平台上,Google Map是一个强大的地图服务应用,它允许开发者集成到自己的应用程序中,提供丰富的地图功能,如定位、导航、路线规划等。本项目"google-map.rar"显然是一个基于Android开发的Google Maps API...

    Android googlemap

    这个“Android googlemap”项目很显然是一个关于如何在Android应用中集成和使用Google Maps API的示例。下面我们将深入探讨Android Google Map开发的相关知识点。 首先,我们需要了解**Google Maps SDK for Android...

    android移动版GoogleMap

    通过GoogleMap的Directions API,你可以发送请求获取路线信息,然后解析返回的JSON数据,绘制路线图层到地图上。 8. **自定义标记与InfoWindow** 可以通过Marker类创建自定义的标记,设置其位置、图标、标题和内容...

    使用google map的API开发的LBS小软

    3. **显示地图**:通过调用GoogleMap对象的setMapType()方法,可以设置地图类型(如卫星图、普通地图或地形图)。同时,通过setCameraPosition()或animateCamera()可以调整地图的视角和中心点。 4. **标注和覆盖物*...

    Android-GeoJsonify-轻松地将GeoJson图层添加到您的地图

    在Android开发中,通常我们会用到各种地图库,如Google Maps SDK for Android或者OpenStreetMap的Leaflet等。这些库允许开发者在应用程序中展示地图,并添加各种图层,包括点、线和多边形等地理对象。然而,将...

    Android google map自定义图层

    在Android开发中,Google Maps API 是一个非常强大的工具,它允许开发者将地图集成到应用程序中,提供导航、定位、标记等功能。本篇我们将探讨如何在Android应用中实现自定义图层,具体是通过`CustomItemizedOverlay...

    android写的google map api 应用.zip

    我们可以通过`GoogleMap.addMarker()`方法创建一个Marker,并设置其位置、图标、标题和信息窗口等内容。 7. **添加Polyline**:Polyline用于绘制线条,常用于显示路径或路线。我们可以通过`GoogleMap.addPolyline()...

    基于android的google地图导航

    在“基于android的google map api 地图导航系统”中,核心知识点包括: 1. **集成Google Maps**:首先,你需要在AndroidManifest.xml文件中添加必要的权限,如INTERNET和ACCESS_FINE_LOCATION,然后在布局文件中...

    google map for android源码

    在Android平台上,Google Map是一个非常重要的组件,它为开发者提供了集成地图、导航、地理编码、定位等功能的能力。这里我们讨论的"google map for android源码"是指Google Maps Android API的相关源代码,它允许...

    android地图的使用

    本文将详细讲解如何在Android应用中集成和使用地图,以实现地图的显示、定位、标注和路线规划等功能。 首先,我们要了解Android地图主要依赖于Google Maps Android API,它提供了丰富的地图功能,包括地图视图、...

    Android开发之百度地图定位

    在Android开发中,集成百度地图并实现定位功能是一项常见的任务,尤其对于开发地理位置相关的应用来说至关重要。本篇文章将深入探讨如何在Android应用中整合百度地图API,并实现精准、高效的定位服务。 首先,我们...

    Google Map V2在Android中的应用

    总之,Google Map V2在Android中的应用极大地拓宽了开发者的想象空间,无论是地图展示、定位导航,还是丰富的交互功能,都能为用户带来便捷的体验。开发者应熟练掌握其使用技巧,不断优化地图相关功能,提升应用的...

    GoogleMap地图控件应用源码.zip

    【GoogleMap地图控件应用源码】是一个包含Google Maps API集成到应用程序中的源代码资源。这个压缩包很可能是为了帮助开发者理解和实现Google Maps在各种平台上的功能,如Android、iOS或者Web应用。通过分析和学习...

    Baidu_map(百度地图)Android平台开发指南

    在Android平台上进行Baidu_map(百度地图)的开发是一项常见的任务,这涉及到集成地图功能、定位服务、路线规划以及各种地图交互操作。本指南将详细阐述如何在Android应用中有效地利用百度地图API来实现这些功能。 ...

Global site tag (gtag.js) - Google Analytics