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

/** * 调节地图到正好放置查询范围的所有点 * @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));
时间: 2024-10-12 17:02:55

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

android百度地图中的地图缩放级别

前期搭建百度地图的环境就不说了,网上一搜一大把,这里只讲地图的缩放,大神可以直接绕道 首先在类的内部初始化一个百度地图的对象 private BaiduMap mBaiduMap; 然后在OnCreate方法中初始化 mBaiduMap = mMapView.getMap(); mMapView为百度控件com.baidu.mapapi.map.MapView的ID初始化后的名称 然后 MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactor

OpenLayers中地图缩放级别的设置方法

来源于:http://www.cnblogs.com/sailheart/archive/2011/03/15/1984519.html 一.概述 在OpenLayers中,地图必须具有一个缩放级别的范围,缩放级别可以用比例尺(scale)或者分辨率(resolution)表示. 比例尺——屏幕上1米代表多少地图坐标单位:分辨率——屏幕上一个像素代表多少地图坐标单位.两者的转换关系是:scale = resolution * 72 * 39.3701(1米=39.3701英寸,1英寸=72像素)

百度地图API一:根据标注点坐标范围计算显示缩放级别zoom自适应显示地图

百度地图中根据页面中的point,自动设置缩放级别和视图中心,将所有的point在视图范围内展示. var points = [point1, point2,point3]; var view = map.getViewport(eval(points)); var mapZoom = view.zoom; var centerPoint = view.center; map.centerAndZoom(centerPoint,mapZoom);

Android自定义百度地图缩放图标

自定义实现Android百度地图的缩放图标,需要自定义一个缩放控件,实现效果如下: 这里的缩放效果,实现了点击按钮可以对地图的放大缩小,通过手势放大与缩小也控制缩放图标的可用状态.具体实现如下: 首先是drawable目录下的两个xml配置文件: zoom_selector_in.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schem

Android自己定义百度地图缩放图标

自己定义实现Android百度地图的缩放图标,须要自己定义一个缩放控件,实现效果例如以下: 这里的缩放效果,实现了点击button能够对地图的放大缩小,通过手势放大与缩小也控制缩放图标的可用状态.详细实现例如以下: 首先是drawable文件夹下的两个xml配置文件: zoom_selector_in.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="h

百度地图实时侦听鼠标滚轮获取地图zoom缩放级别

百度地图api提供的获取地图缩放级别的方法比较单一,就一个getZoom()方法,这个方法能够获取一次地图缩放级别,后面随着鼠标滚轮的滚动,地图缩放级别被改变,就无法再获取地图缩放级别了,具体api参考:http://developer.baidu.com/map/reference/index.php?title=Class:%E6%9E%81%E9%80%9F%E7%89%88%E6%A0%B8%E5%BF%83%E7%B1%BB/map 如题,若想实时获取地图的缩放级别,小博主是这样做的,

[android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题

    最近做android百度地图,但是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so显示百度地图时总是遇到问题--只显示网格而没有显示地图,网络连接和APIKey申请都是正确的,就是不知道为什么不能显示,网上也有很多人遇到这个问题,有的是SDK更新不兼容.而且网上很多百度地图都是使用V2.3.1版本,后来没有办法只有通过baidumapapi_v2_4_1.jar完成显示地图. 其中需要注意的是使用2.3.1时调用manager.init(

地图比例尺与高德地图中的缩放级别(0-20)的映射关系与转换方法

一.概述 近期基于高德地图进行了不少开发工作,期间遇到了一个与比例尺相关的问题. 如何将地图比例尺与高德地图中的缩放级别(0-20)对应起来? 二.映射关系 [高德地图api比例尺][https://www.cnblogs.com/yesyes/p/6785705.html] 三.转换方法 高德地图中的zoom是一个float类型的参数,取值范围为(0-20),此处没有做到精细化转换,待后续更新! /** * "scale-zoom"映射关系:https://www.cnblogs.c

Android高德地图自定义Markers的例子

下文为各位重点介绍关于Android高德地图自定义Markers的例子,希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法. 之前的博客里说了地图的嵌入和定位,今天就说说在地图上显示一些我们想要的.在地图中有自带的Markers(标记),但是它只显示一个椭圆的图标,一般是不符合我们的需求的,这样就要我们自己来自定义.首先标记有下面一些属性; 1.position(Required) 在地图上标记位置的经纬度值.参数不能为空. 2.title 当用户点击标记,在信息窗口上