文档章节

【Android】高德地图 缩放级别及像素以及地图上的点转化成屏幕上的点

少年追梦
 少年追梦
发布于 2015/10/20 11:46
字数 286
阅读 7166
收藏 4
/** * 调节地图到正好放置查询范围的所有点 * @param centerLatLng 中心点 * @param range 查询范围(米) */ 
	private void adjustCamera(LatLng centerLatLng,int range) { 
		//http://www.eoeandroid.com/blog-1107295-47621.html
		//当前缩放级别下的比例尺 
		//"每像素代表" + scale + "米"
		float scale = g_aMap.getScalePerPixel(); 
		//代表range(米)的像素数量 
		int pixel = Math.round(range / scale); 
		//小范围,小缩放级别(比例尺较大),有精度损失 
		Projection projection = g_aMap.getProjection(); 
		//将地图的中心点,转换为屏幕上的点 
		Point center = projection.toScreenLocation(centerLatLng); 
		//获取距离中心点为pixel像素的左、右两点(屏幕上的点 
		Point right = new Point(center.x + pixel, center.y); 
		Point left = new Point(center.x - pixel, center.y); 
		
		//将屏幕上的点转换为地图上的点 
		LatLng rightLatlng = projection.fromScreenLocation(right); 
		LatLng LeftLatlng = projection.fromScreenLocation(left); 
		
		LatLngBounds bounds = LatLngBounds.builder().include(rightLatlng).include(LeftLatlng).build();
		//bounds.contains();
		
		g_aMap.getMapScreenMarkers();
		
		//调整可视范围 
		//aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(LatLngBounds.builder().include(rightLatlng).include(LeftLatlng).build(), 10)); }
	}

代码片段,点击区域,显示该区域上的点

LatLng latLng = marker.getPosition();
		//缩放级别
		float zoom = g_aMap.getCameraPosition().zoom;
		//"每像素代表" + scale + "米"
		float scale = g_aMap.getScalePerPixel(); 
		float range = scale * zoom;
		Circle circle = g_aMap.addCircle(new CircleOptions().center(latLng)
				.radius(range).strokeColor(getResources().getColor(R.color.color_translate))
				.fillColor(getResources().getColor(R.color.color_translate)).strokeWidth(2));


本文转载自:http://www.eoeandroid.com/blog-1107295-47621.html

共有 人打赏支持
少年追梦
粉丝 2
博文 51
码字总数 6940
作品 0
海淀
程序员
私信 提问
理解 Android 的精度

前言 安卓是一个只对硬件设备限制有很少限制的移动操作系统。生产商们几乎可以创造任何形状的、尺寸的和密度的屏幕的设备。设备可以有物理键盘和按钮或者只有虚拟键盘和按钮。由于它的设备客...

oschina
2013/04/23
4.2K
4
【高小爱课堂】_地图API开发者教程(全平台精华版)

一、使用须知 二、坐标相关问题 三、标注问题 四、定位相关问题 五、云图 六、地图API 1)Javascript API 2)Android API 3)iOS API 4)Windows Phone 及win8 API 5)URI API ▼使用须知 Q:...

高德LBS开放平台
2014/06/13
1K
0
Android高德地图开发之Overlay应用

做过Android地图应用开发的人员都知道,现在流行的地图框架不外乎是Google,百度以及高德地图。 对于Google和百度的地图开发,首先需要获得一个API KEY,然后才能被授权开发应用。而高德地图则...

Patata
2013/03/04
0
5
Android学习笔记之百度地图基础知识

<1>GeoPoint 表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储。 方法 GeoPoint(int latitudeE6, int longitudeE6) 用给定的经纬度构造一个GeoPoint 方法介绍: public int getLa...

迷途d书童
2012/03/05
6.9K
3
Android屏幕计量单位详解

学习Android这么久,马上毕业要参加工作了,一直对px、dip、sp、dp这几个单位概念似懂非懂的,这次因为工作上的需要,网上搜了点资料并整理了下,写篇日志以便以后阅读。 1.px (pixels)(像...

xiangmao
2012/03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Ext grid 渲染

// 单元格字体颜色渲染function renderer_Meta_useStatus(value, cellmeta, record,rowIndex, columnIndex, store){ var color = ""; if("空闲"==value){ color = "green";......

MoksMo
24分钟前
4
0
log4j2在spring中的配置

<?xml version="1.0" encoding="UTF-8"?><!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --><!--Configuration后面的status,这个用于设置l......

TonyTaotao
30分钟前
3
0
java 中间变量缓存机制(i++,++i)

public class Test { public static void main(String[] args) { int i = 0; i = i ++ ; System.out.println(i); } } 答案是 0 如果是 i = ++......

shzwork
37分钟前
5
0
初识多线程及其原理-笔记

什么情况下应该使用多线程? 通过并行计算提高程序执行性能 需要等待网络、I/O响应导致耗费大量的执行时间, 可以采用异步线程的方式来减少阻塞 tomcat7 以前的io模型 客户端阻塞 线程级别阻...

Java搬砖工程师
49分钟前
2
0
webpack4 css打包、压缩、分离、去重等优化配置详解

Webpack 4 目前版本已经到了4.27 相较于前面的版本还是有一些改动的,具体可以参考升级指南 迁移到新版本 这里只介绍 css 的 打包、压缩、分离、去重 的方法; 不懂的或者有更优的方案,欢迎...

zerokb-小浪
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部