`
huahua09
  • 浏览: 46924 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

google map的小知识点

 
阅读更多
1.Projection的作用
2.在Google Map上绘制直线的方法

绘制路线的步骤
1.确定路线的其实和终止的经纬度坐标;
2.在起点和终点上绘制图标;
3,将经纬度坐标换算成屏幕上的x轴/y轴
4,在起点和终点之间绘制路线;

Projection的作用
1.将地图上的经纬度坐标转化层层屏幕上的x轴和y轴的坐标
android.graphics.Point toPixels(GeoPoint in,android.graphics.Point out)
2.将x轴和y轴的坐标转换成地图上的经纬度坐标
GeoPoint fromPixels(int x,int y)

main.xml

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


//在MapView之上创建一个图层,需要创建一个类,实现Overlay,并生成该类的对象,然后将该队形加到MapView。getOverlay()
//一个OverlayItem对象就代表了一个在地图上显示的标记
public class FirstOverlay extends ItemizedOverlay<OverlayItem>{
//创建一个List对象,用于持有该图层当中所有的标记对象
private ArrayList<OverlayItem> overlayItems = new ArrayList<OverlayItem>();
private Context context;

//第一个参数用于指定标记所使用的默认图片
public FirstOverlay(Drawable defaultMarker,Context context){
//必须调用父类的构造函数
supper(boundCenterBotton(defaultMarker));
this.context = context;
}

public FirstOverlay(Drawable defaultMarker){
supper(boundCenterBotton(defaultMarker));
}

//用于将生成好的OverlayItem对象添加到List当中
public void addOverlay(OverlayItem overlay){
overlayItems.add(overlay);
populate();
}

//用于创建一个overlayItem对象
@Override
protected OverlayItem createItem(int i){
return overlayItems.get(i);
}

//返回当前的overlay当中所报涵的overlayItem
@Override
public int size(){
return overlayItems.size();
}
//当用户点击标记时,所调用的函数
@Override
public boolean onTap(int index){
OverlayItem item = overlayItems.get(index);
AlterDialog.Builder builder = new AlterDialog.Builder(context);
builder.setTitle(item.getTitle());
builder.setMessage(item.getSnippet());
Dialog dialog = builder.create();
dialog.show();
return true;
}
}



public class MainActivity extends Activity {
    /** Called when the activity is first created. */
private Projection projection;
private List<Overlay> overlays;
private MapController mapContrroller;
private GeoPoint beginGeoPoint;
private GeoPoint endGeoPoint;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        //指定起始和终止位置的经纬度
        beginGeoPoint = new GeoPoint(19240000, -99120000);
        endGeoPoint = new GeoPoint(19340000, -99220000);
       
        MapView mapView = (MapView) findViewById(R.id.mapViewId);
        mapView.setBuiltInZoomControls(true);
       
        //mapContrroller对象只要用于对地图进项控制
        mapContrroller = mapView.getController();
        overlays = mapView.getOverlays();
        projection = mapView.getProjection();
       
        overlays.add(new PointOverlay(beginGeoPoint));
        overlays.add(new PointOverlay(endGeoPoint));
        overlays.add(new LineOverlay(beginGeoPoint, endGeoPoint));
       
        //
        mapContrroller.animateTo(beginGeoPoint);
        mapContrroller.setZoom(12);
    }
   
   
    @Override
    protected boolean isRouteDisplayed(){
    return false;
    }
   
    //该类的对象用于在地图上绘制线条
    class LineOverlay extends Overlay {
    private GeoPoint begin;
    private GeoPoint end;
   
    public LineOverlay(){
   
    }
   
    public LineOverlay(GeoPoint begin, GeoPoint end){
    this.begin = begin;
    this.end = end;
    }
   
    public void draw(Canvas canvas,MapView mapv, boolean shadow){
    super.draw(canvas, mapv, shadow);
    Paint paint = new Paint();
    paint.setColor(Color.BLUE);
    paint.setStyle(Paint.Style.FILL_AND_STROKE);
    paint.setStrokeWidth(2);
    Point beginPoint = new Point();
    Point endPoint = new Point();
    Path path = new Path();
    projection.toPixels(beginGeoPoint,beginPoint);
    projection.toPixels(endGeoPoint,endPoint);
    path.moveTo(endPoint.x, endPoint.y);
    path.lineTo(beginPoint.x, beginPoint.y);
    canvas.drawPath(path, paint);
    }
    }
   
    //该类的对象的作用是在地图上绘制图标
    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.icon);
    Paint paint = new Paint();
    canvas.drawBitmap(bmp, point.x, point.y-20, paint);
    }
    }
}
分享到:
评论

相关推荐

    谷歌地图Google Map API V3中文开发文档

    谷歌地图 Google Map API V3 中文开发文档提供了一个详细的中文开发指南,涵盖了谷歌地图 Google Map API V3 的使用方法、相关类库、事件处理等方面的知识点。开发者可以根据自己的需求,选择合适的组件和方法来创建...

    Ext Google Map 简易开发框架

    下面将详细介绍这个框架的关键知识点。 首先,**ExtJs**是一个强大的JavaScript组件库,主要用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件,如表格、表单、树形视图、菜单等,以及一套完整的MVC...

    googleMap根据经纬度获取地理位置

    首先,`googleMap根据经纬度获取地理位置`这个标题涉及到的核心技术是Google Maps Geocoding服务。Geocoding是将地址或坐标(经纬度)转换为地理坐标的过程,反之亦然。在Google Maps API中,我们可以使用Geocoding ...

    Google map 离线调试

    下面将详细介绍如何进行Google Map的离线调试,以及涉及的相关知识点。 首先,离线调试Google Map需要处理的关键是资源的本地化。描述中的文件列表揭示了可能的离线资源:`example2_my.htm`、`example_my.htm`、`...

    稻歌Google Map截获器V1.1版安装程序

    【标题】"稻歌Google Map截获器V1.1版安装程序"涉及的主要知识点是利用第三方工具获取和处理Google Map的卫星影像数据。这款软件主要用于帮助用户抓取并保存Google Maps上的卫星图像,以便离线查看或者进行特定分析...

    google map api学习

    下面将详细介绍谷歌地图API的一些关键知识点。 首先,你需要在Google Developers Console中注册一个项目,并启用Google Maps JavaScript API,获取API密钥。这个API密钥是连接你的应用和谷歌地图服务的桥梁,确保你...

    google map server

    在使用Google Map Server或Google Earth时,有以下几个重要的知识点: 1. API接入:Google Maps提供了API接口,开发者可以将其集成到自己的网站或应用中,实现自定义地图功能,如定位、路线规划、地理编码等。 2. ...

    GoogleMap开发源码

    对于"GoogleMap开发源码"这个主题,我们可以深入探讨以下几个核心知识点: 1. **Google Maps API**:Google Maps提供JavaScript API、Android API和iOS SDK等,允许开发者在网页、移动应用上显示地图、获取位置信息...

    基于Google Map API的简单地图

    本文将详细解析如何利用Google Map API实现"基于Google Map API的简单地图"的功能,包括显示用户所在地区、地图操作以及标记地点等核心知识点。 首先,我们要了解Google Map API的基本用法。它是Google提供的...

    轨迹记录 android google map 应用

    【标题】:“轨迹记录 android google map 应用...以上就是关于"轨迹记录 android google map 应用"的主要知识点,深入理解并实践这些内容,可以帮助开发者熟练掌握Android平台上基于Google Maps的定位和轨迹记录功能。

    GOOGLE MAPapi示例

    ### GOOGLE MAP API 示例知识点解析 #### 一、Google Maps JavaScript API 概述 Google Maps JavaScript API 是一个功能强大的工具包,允许开发者将交互式的地图嵌入到网页中。通过使用这个API,开发者可以轻松地...

    google map api开发源代码

    源代码中可能包含了以下关键知识点: 1. **初始化地图**:在网页中加载地图首先要进行初始化,设置地图的中心点坐标、缩放级别以及地图类型(如卫星、道路图)。 2. **标记(Marker)与信息窗口(InfoWindow)**:...

    google map api v3源码

    在使用谷歌地图API V3时,开发者需要注意以下关键知识点: 1. **初始化地图**: 在HTML页面中引入Google Maps API的JavaScript库,然后在JavaScript代码中创建一个地图实例。通常会指定地图容器(如div元素)的ID和...

    OCL.rar_andriod google map_google map_java google map_map_ocl

    以下是这些关键词涉及的相关知识点: 1. **Android**:Android是一个开源且基于Linux的移动设备操作系统,广泛应用于智能手机和平板电脑。开发者可以使用Java或Kotlin等语言开发Android应用。 2. **Google Maps**...

    android GoogleMap定位(四)

    在Android开发中,GoogleMap API是一个非常重要的工具,它允许开发者在应用中集成地图功能,实现定位、导航、路线规划等复杂操作。...开发者可以根据需求灵活运用这些知识点,构建丰富的地图应用功能。

    google map的測試HTML檔案

    以下是对每个文件及其相关知识点的详细说明: 1. **map1.html**:这个文件可能是一个基础示例,展示了如何在网页上嵌入Google Map,并设置基本的地图视图。通常会使用`&lt;script&gt;`标签引入Google Maps API,然后通过...

    GoogleMap&Android

    以下将详细讲解基于Android的Google地图开发涉及的知识点: 1. **集成Google Maps API** 要在Android应用中使用Google地图,首先需要在Google Cloud Platform上注册项目,并获取API密钥。这个过程包括创建项目、...

    google-Map.zip_android_android google map_android map_google map

    我们将会讨论以下几个关键知识点: 1. **Google Maps API Key**: 在使用Google Maps服务前,你需要获取一个API密钥。这个密钥是通过Google Cloud Console生成的,关联到你的项目和特定的SHA-1证书指纹。没有有效...

    googlemap应用

    下面将详细介绍这个主题,包括相关知识点和实现步骤。 1. **Google Maps API** Google Maps API是Google提供的一套接口,允许开发者在自己的应用程序中嵌入地图功能,如定位、导航、路线规划等。在Android中,我们...

    GoogleMap地图控件应用源码_googlemapcontrol.zip

    通过分析这个源码,开发者可以学习到以下知识点: 1. Google Maps API的使用:了解如何获取API密钥,如何在项目中引入并初始化API。 2. 地图显示与控制:学习如何加载地图、调整缩放级别、平移地图等。 3. 标记与...

Global site tag (gtag.js) - Google Analytics