当前位置: 首页 > news >正文

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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

/** * 调节地图到正好放置查询范围的所有点 * @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));


转载于:https://my.oschina.net/u/141132/blog/519254

相关文章:

  • JAVA基础学习day26--正则表达式
  • css3中的伪元素
  • lua程序设计
  • yii2 model 给模型赋值(花了我将近30分钟)
  • CacheManager:–个通用缓存接口抽象类库
  • Map小结
  • Android中实现app版本更新
  • linux内核优化
  • 媒体类型(MIME类型)
  • AngularJS指令开发(1)——参数详解
  • [安卓] 15、用NFC解锁手机并自动打开应用
  • Delphi、C#之父Anders Hejlsberg首次访华 推广TypeScript
  • JavaScript 数据类型
  • code
  • Service-stack.redis 使用PooledRedisClientManager 速度慢的原因之一
  • @angular/forms 源码解析之双向绑定
  • 「译」Node.js Streams 基础
  • 2017 前端面试准备 - 收藏集 - 掘金
  • 2017-08-04 前端日报
  • Java-详解HashMap
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • PaddlePaddle-GitHub的正确打开姿势
  • Vue 2.3、2.4 知识点小结
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 编写高质量JavaScript代码之并发
  • 欢迎参加第二届中国游戏开发者大会
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端攻城师
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • Java性能优化之JVM GC(垃圾回收机制)
  • # Apache SeaTunnel 究竟是什么?
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (五)Python 垃圾回收机制
  • (转)nsfocus-绿盟科技笔试题目
  • *** 2003
  • .htaccess 强制https 单独排除某个目录
  • .NET 5种线程安全集合
  • .net MVC中使用angularJs刷新页面数据列表
  • .net 程序发生了一个不可捕获的异常
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @Bean有哪些属性
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [100天算法】-目标和(day 79)
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [asp.net core]project.json(2)
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [C++]priority_queue的介绍及模拟实现
  • [C++]类和对象【下】
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)
  • [Deep Learning] 神经网络基础