`
longgangbai
  • 浏览: 7349166 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android google map自定义的折现图层的实现

 
阅读更多

 

实现结果如下:

 

 

 

 

代码如下: 

package com.easyway.polyline;

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

import android.os.Bundle;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
/**
 * 自定义的折现图层的实现
 *  在特定情况下,可能需要我们开发人员绘制特定的图层在google map上面显示
 *  
 *  
 * 
 * @author longgangbai
 *
 */
public class GooglePolylineActivity extends MapActivity {
	private MapView mapView;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapView =(MapView)findViewById(R.id.mapView);
        
        //存储连接的点的信息
        List<GeoPoint> points = new ArrayList<GeoPoint>();
        points.add(new GeoPoint(39907794,116356694));
        points.add(new GeoPoint(39950181,116415059));
        points.add(new GeoPoint(39909637,116435315));
        points.add(new GeoPoint(39902526,116398236));
        
        //添加自定义的图层
        PolyLine polyline = new PolyLine(points);
        
        mapView.getOverlays().add(polyline); //map是MapView类型
        
        mapView.invalidate();
        mapView.setBuiltInZoomControls(true);
        
        MapController mapcontroller=mapView.getController();
        GeoPoint  point=new GeoPoint(39950181,116415059);
        mapcontroller.setCenter(point);
        mapcontroller.setZoom(7);
    }

    /**
     * 是否显示路线显示
     */
	@Override
	protected boolean isRouteDisplayed() {
		return true;
	}
	
	
}

 

 

 

package com.easyway.polyline;


import java.util.List;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;

/**
 * Goolge地图之Polyline实现Overlay 以图层形式存在.
 * MyLocationOverlay:定位当前位置的图层
 * ItemizedOverlay:图层的基类
 * OverlayItem:图层的项
 * 
 * 
 * @author longgangbai
 */
public class PolyLine extends Overlay {
	List<GeoPoint> points;
	Paint paint;

	/**
	 * 构造函数,使用GeoPoint List构造Polyline
	 * 
	 * @param points
	 *            GeoPoint点List
	 */
	public PolyLine(List<GeoPoint> points) {
		this.points = points;
		paint = new Paint();
		paint.setColor(Color.BLUE);
		paint.setAlpha(150);
		paint.setAntiAlias(true);
		paint.setStyle(Paint.Style.FILL_AND_STROKE);
		paint.setStrokeWidth(4);
	}

	/**
	 * 使用GeoPoint点List和Paint对象来构造Polyline
	 * 
	 * @param points
	 *            GeoPoint点List,所有的拐点
	 * @param paint
	 *            Paint对象,用来控制划线样式
	 */
	public PolyLine(List<GeoPoint> points, Paint paint) {
		this.points = points;
		this.paint = paint;
	}


	/**
	 * 真正将线绘制出来 只需将线绘制到canvas上即可,主要是要转换经纬度到屏幕坐标
	 */
	@Override
	public void draw(Canvas canvas, MapView mapView, boolean shadow) {
		if (!shadow) {// 不是绘制shadow层
			Projection projection = mapView.getProjection();
			if (points != null) {
				if (points.size() >= 2) {
					Point start = projection.toPixels(points.get(0), null);// 需要转换坐标
					for (int i = 1; i < points.size(); i++) {
						Point end = projection.toPixels(points.get(i), null);
						canvas.drawLine(start.x, start.y, end.x, end.y, paint);// 绘制到canvas上即可
						start = end;
					}
				}
			}
		}
	}
}

 

分享到:
评论

相关推荐

    Android google map自定义图层

    本篇我们将探讨如何在Android应用中实现自定义图层,具体是通过`CustomItemizedOverlay`来个性化地展示地图上的元素。 `CustomItemizedOverlay`是Google Maps API中的一个重要类,它用于创建可自定义的覆盖物...

    android google地图显示地图图层叠加

    在Android开发中,集成Google地图并实现地图图层叠加是一项常见的任务,这使得开发者能够创建出功能丰富的地理位置应用。Google地图API提供了强大的功能,允许我们不仅显示基础的地图数据,还能添加自定义图层,比如...

    高德地图自定义图层

    通过使用高德地图JavaScript API或Android/iOS SDK,我们可以创建自定义图层并绑定事件监听器,实现用户交互功能。 在创建自定义图层时,主要涉及以下几个步骤: 1. 引入高德地图API:在HTML文件中引入高德地图的...

    安卓 谷歌地图 演示源码android google map

    安卓 android google map 谷歌地图

    android GoogleMap定位(四)

    在Android开发中,GoogleMap API是一个非常重要的工具,它允许开发者在应用中集成地图功能,实现定位、导航、路线规划等复杂操作。本篇将详细探讨如何在Android应用中使用GoogleMap进行定位。 首先,我们需要在项目...

    Android google map API例子

    Android google map API例子

    google-Map.zip_android_android google map_android map_google map

    本教程主要围绕"google-Map.zip"这个压缩包,探讨如何在Android应用中使用Google Maps API,实现一个Android客户端的Google Map实例。我们将会讨论以下几个关键知识点: 1. **Google Maps API Key**: 在使用...

    android google map 导航

    在Android平台上实现Google Map导航功能,需要利用Google Maps Android API v2。自2013年起,API进行了重大更新,导致旧版本的一些类不再适用。本文将详细介绍如何使用最新的API来实现位置获取、通过地名获取经纬度...

    android google map 应用

    在Android平台上,Google Map应用是开发地图集成的重要组成部分,它为开发者提供了丰富的API和服务,使得在移动设备上实现地图展示、定位、导航等功能变得轻松易行。本篇将深入探讨如何在Android应用中使用Google ...

    Mapbox 自定义图层 加载百度切片

    这个场景中,我们讨论的是如何将百度地图的切片整合到Mapbox中,实现自定义图层的加载和展示。这是一个混合使用不同地图服务的技术,涉及到地理空间数据的处理和前端开发技术。 首先,我们要理解Mapbox的基本概念。...

    echarts map自定义图片.zip

    在使用ECharts地图图表时,有时我们可能需要对默认的地图进行自定义,比如将地图上的区域替换为自己的图片,以实现更加个性化或者特殊需求的展示。"echarts map自定义图片.zip"这个压缩包文件正是提供了这样的解决...

    android_google_map_custom_marker:Android Google Map自定义标记弹出窗口

    本示例项目“android_google_map_custom_marker”专注于展示如何在Google Maps上自定义标记(Marker)以及与之关联的弹出窗口(InfoWindow)。在Android应用中,自定义这些元素可以提供更丰富的用户体验,让用户能够...

    android使用谷歌地图,利用高德地图加载瓦片图层

    本篇将深入探讨如何在Android应用中使用谷歌地图API以及如何利用高德地图的数据资源来加载自定义的瓦片图层。这种技术通常用于显示特定区域的高精度地图、卫星图像或者自定义的地图样式。 首先,我们要了解谷歌地图...

    Android_Google_Map.rar_Google api_android_android google map_and

    本文将深入讲解如何进行Android Google Map的开发入门,从搭建环境、申请API Key到关键类的使用。 首先,我们需要**搭建环境**。在Android Studio中,确保你已经更新到最新版本,并安装了Android SDK。在项目级...

    android google map example

    在本示例中,我们将深入探讨如何在Android应用中实现Google Maps的功能,包括获取API密钥、设置权限、集成地图SDK以及添加地图控件。 首先,要在Android应用中展示Google Maps,你需要在Google Cloud Console上创建...

    百度map自定义覆盖物方法

    百度map 这只覆盖物的标签和标注文字,和自定义覆盖物,代码工具类

    轨迹记录 android google map 应用

    本实例,"轨迹记录 android google map 应用",是针对Android开发初学者的一个实战项目,它展示了如何在Android设备上实现轨迹记录功能,结合Google Maps展示行走或移动的路径。这个应用对于户外活动、运动健身或者...

    google map api 实现自定义mark和其移动

    google map api 实现自定义mark和其移动

    Google转Map图层

    要实现"Google转Map图层",我们通常需要借助第三方工具,如Global Mapper。Global Mapper是一款功能全面的GIS软件,它可以读取、写入多种地图数据格式,并支持数据转换。在这个案例中,提供的压缩包文件"Global ...

    Android 高德地图自定义点聚合marker图片及Overlay点击选中功能

    - 首先,创建一个自定义的`MapView`,继承自`com.amap.api.maps.MapView`,并在其中添加`OnMapClickListener`监听器,实现`onMapClick()`方法,检测地图上的点击事件。 - 当点击事件发生时,获取点击位置的LatLng...

Global site tag (gtag.js) - Google Analytics