技术标签: OnMapLoadedCallback 百度地图的使用 合适范围 百度地图 所有点
通常地图会显示出多个点,如像行驶轨迹等,往往在屏幕上一次性就全部显示出来,那要怎么设置地图的显示宽高,才能将所有的点合理的显示出来呢。
看看以下的代码实现:
private void setMyLocation() {
list = new ArrayList<>();
LatLng ll = new LatLng(24.475982,
118.093132);
LatLng ll1 = new LatLng(24.477382,
118.093232);
LatLng ll2 = new LatLng(24.478382,
118.093832);
LatLng ll3 = new LatLng(24.487382,
118.094232);
LatLng ll4 = new LatLng(24.497982,
118.099562);
list.add(ll);
list.add(ll1);
list.add(ll2);
list.add(ll3);
list.add(ll4);
MapStatus.Builder builder = new MapStatus.Builder();
builder.target(ll).zoom(18.0f);
// mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
for (LatLng latLng : list) {
mBaiduMap.addOverlay(new BaiduMapUtil().setMarker(latLng));
}
mBaiduMap.addOverlay(new BaiduMapUtil().Polyline(list));
//将所有的坐标显示出来的合理视图
if (isFrist) {
mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
isFrist=false;
mBaiduMap.animateMapStatus(new BaiduMapUtil().setLatLngBounds(list, mMapView));
}
});
}else{
mBaiduMap.animateMapStatus(new BaiduMapUtil().setLatLngBounds(list, mMapView));
}
}
public class BaiduMapUtil {
/**
* 绘制Marker,地图上常见的类似气球形状的图层
*/
public MarkerOptions setMarker(LatLng latLng) {
return setMarker(latLng, R.drawable.icon_defult_marker);
}
public MarkerOptions setMarker(LatLng latLng, int drawableId) {
MarkerOptions markerOptions = new MarkerOptions();//参数设置类
markerOptions.position(latLng);//marker坐标位置
markerOptions.icon(BitmapDescriptorFactory
.fromResource(drawableId));//marker图标,可以自定义
markerOptions.draggable(false);//是否可拖拽,默认不可拖拽
markerOptions.anchor(0.5f, 1.0f);//设置 marker覆盖物与位置点的位置关系,默认(0.5f, 1.0f)水平居中,垂直下对齐
markerOptions.alpha(0.8f);//marker图标透明度,0~1.0,默认为1.0
markerOptions.animateType(MarkerOptions.MarkerAnimateType.none);//marker出现的方式,从天上掉下
markerOptions.flat(false);//marker突变是否平贴地面
markerOptions.zIndex(1);//index
return markerOptions;
}
/**
* 绘制折线
*/
public PolylineOptions Polyline(List<LatLng> points) {
PolylineOptions polylineOptions = new PolylineOptions();//参数设置类
polylineOptions.width(10);//宽度,单位:像素
polylineOptions.color(0xAAFF0000);//设置折线颜色
polylineOptions.points(points);//折线顶点坐标集
return polylineOptions;
}
/**
* 多个点,在Android里面显示合理的缩放级
*/
public MapStatusUpdate setLatLngBounds(List<LatLng> points, MapView mMapView) {
LatLngBounds.Builder builder2 = new LatLngBounds.Builder();
for (LatLng p : points) {
builder2 = builder2.include(p);
}
LatLngBounds latlngBounds = builder2.build();
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(latlngBounds, mMapView.getWidth(), mMapView.getHeight());
return u;
}
}
//将所有的坐标显示出来的合理视图
if (isFrist) {
mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
isFrist=false;
mBaiduMap.animateMapStatus(new BaiduMapUtil().setLatLngBounds(list, mMapView));
}
});
}else{
mBaiduMap.animateMapStatus(new BaiduMapUtil().setLatLngBounds(list, mMapView));
}
这段代码为显示合理范围的核心代码,加入是否为首次的判断,因为要在
OnMapLoadedCallback中实现是关键,否则mapview的with和height取得是0,如果在其他视觉范围内,想恢复到这个合理的范围则经过首次加载后,就不会再执行OnMapLoadedCallback方法,所以要判断是否为第一次加载的状态。
文章浏览阅读4.9k次。服务器安装Setup-Subversion-1.7.7 安装路径:D:\Subversion在D:\根目录新建SVN目录做为svn的版本库目录。接着,在D:\SVN\目录下新建一个项目bobo目录。然后,在该目录上右键,选择:TortoiseSVN -> 在此创建版本库,点击“确定”(注意:不要创建目录结构-理由:由于本人对SVN不了解,经过测试,如果创建了目录结构,那么同步到客户端的项目_svn安装no certification authorities found
文章浏览阅读3.5k次。Nest是一套基于Node.js的强大的Web框架,可帮助你轻松构建出高效的、可扩展的应用程序。它是通过结合OOP(面向对象编程)和FP(函数式编程)的最佳理念,采用现代化JavaScript,使用TypeScript构建的。Nest不仅仅只是一套框架,因为它是基于绝妙的,著名的流行库Express和Socket.io构建的(你也可以根据自己的需求选择任何其他库),所以无需等待大型社区,可以直接使..._node得nest框架中文文档
文章浏览阅读1.5k次。效果1:从头播放到尾效果2:重复播放效果3:正放、倒放交替播放using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class XuLieZhen : MonoBehaviour{ [Header("序列帧路径")] public string Path; [Header("更换间隔")] public fl_unity 序列帧换装
文章浏览阅读4.7w次,点赞129次,收藏751次。声明:AS版本为:3.4;JDK版本为:1.81、先看一下项目目录:2、新建一个AS项目,创建如上图所示的目录结构,然后添加内容:(1)修改添加布局文件:activity_main.xml:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xm..._android sqllite tomcat
文章浏览阅读189次。innodb_data_home_dir这是InnoDB表的目录共用设置。如果没有在 my.cnf 进行设置,InnoDB 将使用MySQL的 datadir 目录为缺省目录。如果设定一个空字串,可以在 innodb_data_file_path 中设定绝对路径。innodb_data_file_path单独指定数据文件的路径与大小。数据文件的完整路径由 innodb_data_home_dir ..._mysql 系统表空间扩容 nnodb_force_frecovery
文章浏览阅读7.1k次。XWIKI使用说明书 2015-05-05 目录1 用户管理... 21.1 添加用户... 21.2 用户分组... 31.3 用户权限... 41.3.1 wiki管理权限... 41.3.2 空间权限_xwiki使用教程
文章浏览阅读919次,点赞12次,收藏10次。然后根据自定义的协议,解析对应的 BeaconItem 中的 bytes,首先创建一个 BeaconParser,传入对应的 BeaconItem,然后根据协议不断读取数据, 如果协议中某个字段占 1 个字节,则调用 readByte,若占用两个字节则调用 readShort,如果要取某个字节的某个 bit 则调用 getBit。// 获取第 1 字节的第 1bit。可以在广播中携带设备的自定义数据,用于设备识别,数据广播,事件通知等,这样手机端无需连接设备就可以获取设备推送的数据。_android蓝牙通信
文章浏览阅读1w次,点赞6次,收藏7次。element ui 中自带的表单必填项校验输入空格时,依然能逃过验证(required: true还是可以通过),需要再 在v-model 加上.trim来禁止输入空格字符。加上之后则不能输入空格。..._element表单空格校验
文章浏览阅读8.3k次,点赞6次,收藏80次。Python科学计算基础库:Numpy,Pandas,Scipy,Matplotlib1.NumPy支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,线性代数,傅里叶变换和随机数功能底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码。2.PandasPandas是一个强大的基于Numpy分析结构化数据的工具集;Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Micros_python常用库介绍
文章浏览阅读5.9w次,点赞150次,收藏1.4k次。利用conda指令搭建Pytorch环境,并在Pytorch环境中安装GPU版Pytorch相关包。_anaconda创建pytorch环境
文章浏览阅读955次,点赞12次,收藏32次。有时我们在磁盘规划前会想要确定一下当前系统的文件系统或磁盘分区情况。这时,就有几个命令可以供选择,通过本文,可以学习这些命令的使用。_lsblk
文章浏览阅读5.7k次,点赞11次,收藏46次。结论!!!学生类当中虽然没有构造方法 但是测试代码当中Student对象也创建完成了。是因为当类中没有任何构造方法的时候系统默认构造一个无参数的构造方法构造方法和普通方法结构的区别如下:调用构造方法怎么调用呢?..._构造方法和普通方法之间的区别