文档章节

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

少年追梦
 少年追梦
发布于 2015/10/20 11:46
字数 286
阅读 7080
收藏 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学习笔记之百度地图基础知识

<1>GeoPoint 表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储。 方法介绍: public int getLatitudeE6() 返回GeoPoint的纬度,单位微度 public int getLongitudeE6() 返回GeoPoin...

迷途d书童
2012/03/05
6.7K
3
Android高德地图开发之Overlay应用

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

Patata
2013/03/04
0
5
SVG前戏—让你的View多姿多彩

什么是SVG SVG的全称是Scalable Vector Graphics,叫可缩放矢量图形。是一种基于可扩展标记语言(XML)。它和位图(Bitmap)相对,SVG不会像位图一样因为缩放而让图片质量下降。它的优点在于...

codeGoogle
08/07
0
0
百度、google、高德 地图比例尺功能实现(算法&&地图分辨率和zoomlevel之间的关系)

一、什么是比例尺? 比例尺是表示图上距离比实地距离缩小的程度,因此也叫缩尺。用公式表示为:比例尺=图上距离/实地距离。 例如地图上1厘米代表实地距离500千米,可写成:1∶50,000,000或写...

hejunbinlan
2016/08/30
64
0
Android屏幕计量单位详解

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

xiangmao
2012/03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部