mars chen 老师第三季视频 08集
绘制路线的步骤
1.确定路线的起始和终止的经纬度坐标
2在起点和终点上绘制图标
3将经纬度坐标换算成屏幕上x轴/y轴坐标
4在起点和终点绘制直线
代码如下:
public class MainActivity extends MapActivity {
private GeoPoint beginGeoPoint;
private GeoPoint endGeoPoint;
private MapController mapController;
private List<Overlay> overlays;
private Projection projection;
@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.mapview);
mapView.setBuiltInZoomControls(true);
//对地图进行控制
mapController=mapView.getController();
overlays=mapView.getOverlays();
projection=mapView.getProjection();
overlays.add(new PointOverlay(beginGeoPoint));
overlays.add(new PointOverlay(endGeoPoint));
overlays.add(new LineOverlay(beginGeoPoint,endGeoPoint));
//
mapController.animateTo(beginGeoPoint);
mapController.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;
}
//canvas画布 paint画笔
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, 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) {
super();
this.geoPoint = geoPoint;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
Point point=new Point();
projection.toPixels(geoPoint,point);
Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.tool);
Paint paint=new Paint();
canvas.drawBitmap(bmp, point.x, point.y-10,paint);
}
}
}
效果图:
最近有点忙,等有时间了。一定好好琢磨琢磨,写个漂亮实用的地图出来。先记录下来,备忘。
- 大小: 168.1 KB
分享到:
相关推荐
4. 在两个标记之间,谷歌地图会自动显示两点间的直线距离,以公里(km)或英里(mi)为单位。这个距离是基于地球的平均半径计算的大圆距离。 在某些情况下,可能需要编程接口(API)来自动化或批量处理这种测量。...
在这个项目中,"js基于谷歌地图API绘制可编辑圆形与多边形"是一个典型的示例,它展示了如何利用谷歌地图API创建交互式的地图元素,特别是用户可以编辑的圆形和多边形。 首先,谷歌地图API是谷歌提供的一套...
本工具为《GoogleEarth基站扇区绘制工具(YZL)》V3.5版,实现EXCEL表 中直接生成KML文件,方便在Googffiearth中显示基站相关信息,方便无线规 划和优化专业冋仁更加形象的了解相关情况。该工具的主要功能如下:本...
在线地图通常依赖于网络服务,如谷歌地图或百度地图,提供实时更新和丰富的信息。离线地图则是在本地存储的地图数据,适用于无网络或网络不稳定的情况。Labview在线离线混合地图结合两者优势,既能实现快速响应和...
1. **Google Maps API概念**:它是一套JavaScript库,可以嵌入到网页中,通过编程方式控制Google地图的行为,如加载地图、定位、标注等。 2. **“Hello, World”**:加载API的基本步骤包括在HTML文件中引入API库,...
5、直接生成kml文件(然后可以在ge中导出kmz文件,以方便图片等等在不同机器之间的转移) 6、实现了点样式、直线样式、面域样式的样式选择控制 7、采用大地主题解算算法计算小区扇区(直线)图形,更加准确。 xzf...
支持谷歌在线(离线)混合卫星地图,普通地图,地形地图,微软电子地图,微软卫星地图,bing地图,在软件界面上可以选择地图类型切换; 2.支持1-20级的地图随意缩放,鼠标右键拖动漫游。 3.支持名称查询定位,可以...
10.支持在地图上绘制直线,曲线,虚线等等,各种图形,支持添加自定义图片。 11.支持数据的批量导出和导入。 12.支持树形结构设置层级。 电子地图沙盘软件使用方法 双指双击屏幕可缩小视图 使用双指开合或旋转...
- 完成信息输入后保存文件,双击KML文件,用Google Earth打开即可显示绘制的基站地图。 通过以上步骤,用户可以在Google Earth中生成精确的基站分布图,这对于通信工程师、网络规划师或者地理信息系统分析人员来说...
在谷歌地球上画图是一项实用的技能,尤其对GIS(地理信息系统)和地质专业的学生来说,它能帮助他们直观地展示和分析地理位置数据。谷歌地球是一款强大的虚拟地球仪应用,允许用户浏览全球各地的卫星图像,并进行一...
通过这种方式,用户可以在结合Google Earth的地图信息的基础上,更加直观地展示基站扇区的具体情况。这不仅有助于工程师们更好地理解基站覆盖范围,还能在项目规划、优化等阶段提供极大的帮助。 #### 2. 程序相关...
- **显示两点一线**:此功能实现了在地图上绘制两点之间的直线,适用于简单的路径展示场景。 - **多点多线**:当需要展示多条路径或者多个位置时,此功能非常有用。 - **点击界面直接连线**:增强了用户的交互体验,...
在谷歌地图中,用户可以通过点击地图上的点来添加路径点,系统会自动计算两点之间的直线距离。如果选择了驾车、步行或骑行模式,谷歌地图还会考虑到实际的道路网络,给出更贴近真实行驶的路线距离。这一功能对于...
开发者需要了解如何发送请求获取路线数据,解析返回的结果,并在地图上绘制路线。 5. **自动计算两点路径距离**:这是路径查询的一个子功能,可以独立于完整的路线规划提供两点间的直线距离或实际行驶距离。这通常...
在地图上实现两点之间的线路绘制是一项常见的任务,尤其在地理信息系统(GIS)和导航应用中。这个过程涉及到坐标系统、地理编码、经纬度计算以及图形渲染等多个知识点。下面将详细介绍这些概念及其应用。 首先,...
在Android平台上进行地图开发是一项重要的技能,特别是在移动应用开发领域,因为地图功能是许多应用程序的核心组成部分,例如导航、位置分享、周边服务搜索等。本文将深入探讨Android地图开发的关键知识点,包括集成...
OpenSeadragon是一款开源的JavaScript库,用于在网页上展示高分辨率图像,它采用Zoomify技术,能够提供平滑的缩放和平移体验,类似于谷歌地图的交互效果。本项目是一个基于OpenSeadragon实现的图形标注工具,支持...
距离测量是另一个实用功能,它允许用户在地图上测量两点或多点之间的直线或路径距离。这需要对地图坐标进行转换和计算。在.NET中,我们可以利用GIS库提供的函数进行地理坐标转换,如WGS84到Web Mercator的转换。在...
在给定的标题“CSharpMap地图画区域判断省份”中,我们可以推测这是一个使用C#编程实现的地图应用,它具有在地图上绘制区域并判断省份的功能。以下将详细解释这个知识点的相关内容。 首先,我们需要理解地图画图的...
6. **路径(Polylines & Polygons)**:`google.maps.Polyline`用于绘制直线或多边形路径,常用于表示路线或边界。`google.maps.Polygon`则用于绘制封闭的多边形区域。 7. **地理编码(Geocoding)**:API提供了...