iOS-BMK标注覆盖物

在iOS开发中,地图算是一个比较重要的模块。我们常用的地图有高德地图,百度地图,谷歌地图,对于中国而言,苹果公司已经不再使用谷歌地图,官方使用的是高德地图。下面将讲述一下百度地图开发过程中的一些小的知识点。

对于如何配置百度地图的开发环境,在此不再讲述,具体可以参考:http://developer.baidu.com/map/index.php?title=iossdk/guide/buildproject

百度地图iOS的API下载地址:http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download

关于百度地图的基本使用,我们可以参考百度地图的开发文档,在此主要总结一下开发文档中一些重要的知识点和延伸点。(地图版本IOS SDK 2.9.0)

首先说明一下百度地图开发中可能遇到的问题:

如何添加标注(系统标注和自定义标注)

 

 1 //添加标记
 2 -(void)viewDidAppear:(BOOL)animated
 3 {
 4     /*
 5     for (int i = 0; i < 3; i++) {
 6         BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
 7         CLLocationCoordinate2D coor;
 8         coor.latitude = 39.915 + i*2;
 9         coor.longitude = 116.404 + i*2;
10         annotation.coordinate = coor;
11         annotation.title = @"这里是北京";
12         [myMapView addAnnotation:annotation];
13     }
14     */
15     BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init];
16     CLLocationCoordinate2D coor;
17     coor.latitude = 39.915;
18     coor.longitude = 116.404;
19     annotation.coordinate = coor;
20     annotation.title = @"这里是北京";
21     annotation.subtitle = @"1";
22     //[myMapView addAnnotation:annotation];
23     
24     BMKPointAnnotation* annotation1 = [[BMKPointAnnotation alloc]init];
25     CLLocationCoordinate2D coor1;
26     coor1.latitude = 38.915;
27     coor1.longitude = 113.404 + 2;
28     annotation1.coordinate = coor1;
29     annotation1.title = @"这里也是北京";
30     annotation1.subtitle = @"2";
31     //[myMapView addAnnotation:annotation1];
32     
33     BMKPointAnnotation* annotation2 = [[BMKPointAnnotation alloc]init];
34     CLLocationCoordinate2D coor2;
35     coor2.latitude = 38.915;
36     coor2.longitude = 119.404 + 2;
37     annotation2.coordinate = coor2;
38     annotation2.title = @"这里同样是北京";
39     annotation2.subtitle = @"3";
40     //[myMapView addAnnotation:annotation2];
41     
42     NSArray *arr = [NSArray arrayWithObjects:annotation,annotation1,annotation2, nil];
43     [myMapView addAnnotations:arr];
44 }
45 
46 -(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation
47 {
48     if ([annotation isKindOfClass:[BMKPointAnnotation class]])
49     {
50         BMKPinAnnotationView *newAnnotationView = (BMKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"AnnotationView"];
51         newAnnotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"AnnotationView"];
52         newAnnotationView.pinColor = BMKPinAnnotationColorPurple;
53         newAnnotationView.animatesDrop = YES;// 设置该标注点动画显示
54         return newAnnotationView;
55     }
56     return nil;
57 }
系统标记

 

 

 

如何自定义大头针
自定义大头针就是改变大头针的样式,如你想使用自己的图片代替上面显示的样式,代码实现跟上面的代码基本一样。只是在上面代理实现的代码中加入下面的代码即可。
 1 newAnnotationView.image = [UIImage imageNamed:@"2"]; (图片显示的大小,可以通过newAnnotationView的frame设定)
如何修改气泡样式
在气泡上默认是可以显示两行信息,一个title,一个subtitle,在此仅修改气泡的样式,如边框大小,字体,等基本信息,没有改变总体布局。
 1 -(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation
 2 {
 3     if ([annotation isKindOfClass:[BMKPointAnnotation class]])
 4     {
 5         BMKPinAnnotationView *newAnnotationView = (BMKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"AnnotationView"];
 6         newAnnotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"AnnotationView"];
 7         newAnnotationView.pinColor = BMKPinAnnotationColorPurple;
 8         newAnnotationView.animatesDrop = YES;// 设置该标注点动画显示
 9        
10         UIView *view = [[UIView alloc]init];
11         view.frame = CGRectMake(0, 0, 100, 60);
12         view.backgroundColor = [UIColor greenColor];
13         [view.layer setMasksToBounds:YES];
14         [view.layer setCornerRadius:3];
15         view.alpha = 0.9;
16         
17         UILabel *label1 = [[UILabel alloc]init];
18         label1.frame = CGRectMake(0, 0, 100, 30);
19         label1.text = annotation.title;
20         label1.numberOfLines = 0;
21         label1.font = [UIFont systemFontOfSize:12];
22         label1.textColor = [UIColor blackColor];
23         [view addSubview:label1];
24         
25         UILabel *label2 = [[UILabel alloc]init];
26         label2.frame = CGRectMake(0, 30, 100, 30);
27         label2.text = annotation.subtitle;
28         label2.numberOfLines = 0;
29         label2.font = [UIFont systemFontOfSize:10];
30         label2.textColor = [UIColor lightGrayColor];
31         [view addSubview:label2];
32         
33         BMKActionPaopaoView *pView = [[BMKActionPaopaoView alloc]initWithCustomView:view];
34         pView.frame = CGRectMake(0, 0, 100, 60);
35         ((BMKPinAnnotationView *)newAnnotationView).paopaoView = pView;
36         return newAnnotationView;
37     }
38     return nil;
39 }
简单定义气泡样式

如果我们想要修改气泡的布局怎样处理呢?

因为系统默认的一个是坐标,一个标题,一个子标题,我们想要按照自己的方式布局弹出的气泡,我们需要做什么工作呢?

首先系统提供BMKPointAnnotation的方法不够我们使用,我们需要继承这个类,假如新类为myPoint,添加一些新的属性。比如这个类,我们需要添加三个属性。

分别是NSString *imgName ; NSString *placeName; NSString *idNum;

接下来我们我们需要自定义气泡,气泡本身是一个UIView,我们可以在继承于UIView,创建一个子类myPaopao;在myPaopao里面要添加三个控件,显示上面定义的三个属性。

1 #import <UIKit/UIKit.h>
2 
3 @interface myPaopao : UIView
4 @property(nonatomic,retain)UIImageView *imgView;
5 @property(nonatomic,retain) UILabel *placeName;
6 @property(nonatomic,retain) UILabel *idNum;
7  
8 @end
myPaopao.h
 1 #import "myPaopao.h"
 2 
 3 @implementation myPaopao
 4  
 5 -(instancetype)initWithFrame:(CGRect)frame
 6 {
 7     self = [super initWithFrame:frame];
 8     if (self)
 9     {
10         self.frame = CGRectMake(0, 0, 150, 60);
11         self.backgroundColor = [UIColor whiteColor];
12         
13         _imgView = [[UIImageView alloc]init];
14         _imgView.frame = CGRectMake(0, 0, 60, 60);
15         [self addSubview:_imgView];
16         
17         _placeName = [[UILabel alloc]init];
18         _placeName.frame = CGRectMake(60, 0, 90, 30);
19         _placeName.font = [UIFont systemFontOfSize:12];
20         [self addSubview:_placeName];
21         
22         _idNum = [[UILabel alloc]init];
23         _idNum.frame = CGRectMake(60, 30, 90, 30);
24         [self addSubview:_idNum];
25         
26     }
27     return self;
28 }
29 @end
myPaopao.m
 1 //添加标记
 2 -(void)viewDidAppear:(BOOL)animated
 3 {
 4     myPoint* annotation = [[myPoint alloc]init];
 5     CLLocationCoordinate2D coor;
 6     coor.latitude = 39.915;
 7     coor.longitude = 116.404;
 8     annotation.coordinate = coor;
 9     annotation.imgName = @"1.jpg";
10     annotation.placeName = @"这里是北京";
11     annotation.idNum = @"1";
12     [myMapView addAnnotation:annotation];
13     
14     myPoint* annotation1 = [[myPoint alloc]init];
15     CLLocationCoordinate2D coor1;
16     coor1.latitude = 38.915;
17     coor1.longitude = 113.404 + 2;
18     annotation1.coordinate = coor1;
19     annotation1.imgName = @"2.jpg";
20     annotation1.placeName = @"这里也是北京";
21     annotation1.idNum = @"2";
22     [myMapView addAnnotation:annotation1];
23 
24 }
25 -(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation
26 {
27     if ([annotation isKindOfClass:[myPoint class]])
28     {
29         myPoint *myAnnotation = (myPoint *)annotation;
30         
31         BMKPinAnnotationView *newAnnotationView = (BMKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"AnnotationView"];
32         newAnnotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"AnnotationView"];
33         newAnnotationView.pinColor = BMKPinAnnotationColorPurple;
34         newAnnotationView.animatesDrop = YES;// 设置该标注点动画显示
35         myPaopao *paopapo = [[myPaopao alloc]init];
36         
37         paopapo.imgView.image = [UIImage imageNamed:myAnnotation.imgName];
38         paopapo.placeName.text = myAnnotation.placeName;
39         paopapo.idNum.text = myAnnotation.idNum;
40         BMKActionPaopaoView *pView = [[BMKActionPaopaoView alloc]initWithCustomView:paopapo];
41         ((BMKPinAnnotationView *)newAnnotationView).paopaoView = pView;
42         return newAnnotationView;
43     }
44     return nil;
45 }
实现代码

如果有需要,我们还可以添加一个按钮,跳转到详情界面,添加按钮的方法,与上面的方法相同,在此

 

 点聚合功能

 点聚合功能是v2.9.0新增加的一个功能,如果在一个区域有大量的点,会产生覆盖现象,点聚合功能可以实现将很多点聚合到一个点上,通过缩放比例,可以显示更多点或聚合点。我们在下载SDK的时候,会带有一个Demo,从Demo中我们可以找到相应的实现代码。在开发文档中给出了我们核心代码:

 

折线(从一位置到另一位置的线段)
 代码段:
 1 //添加标记
 2 -(void)viewDidAppear:(BOOL)animated
 3 {
 4     CLLocationCoordinate2D coors[2] = {0};
 5     coors[0].latitude = 39.315;
 6     coors[0].longitude = 116.304;
 7     coors[1].latitude = 30.515;
 8     coors[1].longitude = 116.504;
 9     BMKPolyline *polyline = [BMKPolyline polylineWithCoordinates:coors count:2];
10     [myMapView addOverlay:polyline];
11 }
12 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
13 {
14     NSLog(@"sdf");
15     if ([overlay isKindOfClass:[BMKPolyline class]])
16     {
17         BMKPolylineView *polylineView = [[BMKPolylineView alloc]initWithPolyline:overlay];
18         polylineView.strokeColor = [[UIColor greenColor]colorWithAlphaComponent:1];
19         polylineView.lineWidth = 5.0;
20         return polylineView;
21     }
22     return nil;
23 }
折线

分段纹理分段折线

代码段:
 1 //添加标记
 2 -(void)viewDidAppear:(BOOL)animated
 3 {
 4     CLLocationCoordinate2D coords[5] = {0};
 5     coords[0].latitude = 39.965;
 6     coords[0].longitude = 116.404;
 7     coords[1].latitude = 39.925;
 8     coords[1].longitude = 116.454;
 9     coords[2].latitude = 39.955;
10     coords[2].longitude = 116.494;
11     coords[3].latitude = 39.905;
12     coords[3].longitude = 116.654;
13     coords[4].latitude = 39.965;
14     coords[4].longitude = 116.704;
15     //构建分段文理索引数组
16     NSArray *textureIndex = [NSArray arrayWithObjects:
17                              [NSNumber numberWithInt:0],
18                              [NSNumber numberWithInt:1],
19                              [NSNumber numberWithInt:2],
20                              [NSNumber numberWithInt:1], nil];
21     BMKPolyline *polyline = [BMKPolyline polylineWithCoordinates:coords count:5 textureIndex:textureIndex];
22     [myMapView addOverlay:polyline];
23 }
24 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
25 {
26     if ([overlay isKindOfClass:[BMKPolyline class]])
27     {
28         BMKPolylineView* polylineView = [[BMKPolylineView alloc] initWithOverlay:overlay];
29         polylineView.lineWidth = 5;
30         polylineView.isFocus = YES;// 是否分段纹理绘制(突出显示),默认YES
31         //加载分段纹理图片,必须否则不能进行分段纹理绘制
32         [polylineView loadStrokeTextureImages:
33         [NSArray arrayWithObjects:[UIImage imageNamed:@"1.jpg"],
34           [UIImage imageNamed:@"2.jpg"],
35           [UIImage imageNamed:@"3.jpg"],nil]];
36         return polylineView;
37     }
38     return nil;
39 }
纹理折线

分段颜色分段折线

代码段:

 1 -(void)viewDidAppear:(BOOL)animated
 2 {
 3     CLLocationCoordinate2D coords[5] = {0};
 4     coords[0].latitude = 39.965;
 5     coords[0].longitude = 116.404;
 6     coords[1].latitude = 39.925;
 7     coords[1].longitude = 116.454;
 8     coords[2].latitude = 39.955;
 9     coords[2].longitude = 116.494;
10     coords[3].latitude = 39.905;
11     coords[3].longitude = 116.654;
12     coords[4].latitude = 39.965;
13     coords[4].longitude = 116.704;
14     //构建分段文理索引数组
15     NSArray *colorIndexs = [NSArray arrayWithObjects:
16                              [NSNumber numberWithInt:0],
17                              [NSNumber numberWithInt:1],
18                              [NSNumber numberWithInt:2],
19                              [NSNumber numberWithInt:1], nil];
20     BMKPolyline *polyline = [BMKPolyline polylineWithCoordinates:coords count:5 textureIndex:colorIndexs];
21     [myMapView addOverlay:polyline];
22 }
23 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
24 {
25     if ([overlay isKindOfClass:[BMKPolyline class]])
26     {
27         BMKPolylineView* polylineView = [[BMKPolylineView alloc] initWithOverlay:overlay];
28         polylineView.lineWidth = 5;
29         // 使用分段颜色绘制时,必须设置(内容必须为UIColor)
30         polylineView.colors = [NSArray arrayWithObjects:[UIColor greenColor], [UIColor redColor], [UIColor yellowColor], nil];
31         return polylineView;
32     }
33     return nil;
34 }
颜色分段

弧线(起点,途经点,终点)

代码段:

 1 -(void)viewDidAppear:(BOOL)animated
 2 {
 3     CLLocationCoordinate2D coords[3] = {0};
 4     coords[0].latitude = 39.9374;
 5     coords[0].longitude = 116.350;
 6     coords[1].latitude = 39.9170;
 7     coords[1].longitude = 116.360;
 8     coords[2].latitude = 39.9479;
 9     coords[2].longitude = 116.373;
10     BMKArcline *arcline = [BMKArcline arclineWithCoordinates:coords];
11     [myMapView addOverlay:arcline];
12 }
13 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
14 {
15     if ([overlay isKindOfClass:[BMKArcline class]])
16     {
17         NSLog(@"adf");
18         BMKArclineView* arclineView = [[BMKArclineView alloc] initWithOverlay:overlay];
19         arclineView.strokeColor = [[UIColor blackColor]colorWithAlphaComponent:0.5];
20         arclineView.lineWidth = 5.0;
21         return arclineView;
22     }
23     return nil;
24 }
弧线

多边形

代码段:

 1 -(void)viewDidAppear:(BOOL)animated
 2 {
 3     CLLocationCoordinate2D coords[3] = {0};
 4     coords[0].latitude = 39;
 5     coords[0].longitude = 116;
 6     coords[1].latitude = 38;
 7     coords[1].longitude = 115;
 8     coords[2].latitude = 38;
 9     coords[2].longitude = 117;
10     BMKPolygon *ploygon = [BMKPolygon polygonWithCoordinates:coords count:3];
11     [myMapView addOverlay:ploygon];
12 }
13 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
14 {
15     if ([overlay isKindOfClass:[BMKPolygon class]])
16     {
17         BMKPolygonView* polygonView = [[BMKPolygonView alloc] initWithOverlay:overlay];
18         polygonView.strokeColor = [[UIColor purpleColor] colorWithAlphaComponent:1];
19         polygonView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
20         polygonView.lineWidth = 5.0;
21         
22         return polygonView;
23     }
24     return nil;
25 }
多边形

代码段:

 1 -(void)viewDidAppear:(BOOL)animated
 2 {
 3     CLLocationCoordinate2D coor;
 4     coor.latitude = 39.915;
 5     coor.longitude = 116.404;
 6     BMKCircle* circle = [BMKCircle circleWithCenterCoordinate:coor radius:5000];
 7     [myMapView addOverlay:circle];
 8 }
 9 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
10 {
11     if ([overlay isKindOfClass:[BMKCircle class]])
12     {
13         BMKCircleView* circleView = [[BMKCircleView alloc] initWithOverlay:overlay];
14         circleView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.5];
15         circleView.strokeColor = [[UIColor orangeColor] colorWithAlphaComponent:0.5];
16         circleView.lineWidth = 10.0;
17         
18         return circleView;
19     }
20     return nil;
21 }

图片图层

第一种方法根据坐标,缩放尺度确定

代码段:

 1  -(void)viewDidAppear:(BOOL)animated
 2 {
 3     CLLocationCoordinate2D coors;
 4     coors.latitude = 39.800;
 5     coors.longitude = 116.404;
 6     BMKGroundOverlay* ground = [BMKGroundOverlay groundOverlayWithPosition:coors
 7                                                                  zoomLevel:5 anchor:CGPointMake(0.0f,0.0f)
 8                                                                     icon:[UIImage imageNamed:@"1.jpg"]];
 9     [myMapView addOverlay:ground];
10 }
11 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
12 {
13     if ([overlay isKindOfClass:[BMKGroundOverlay class]]){
14         BMKGroundOverlayView* groundView = [[BMKGroundOverlayView alloc] initWithOverlay:overlay];
15         return groundView;
16     }
17     return nil;
18 }
图片图层一

第二种方法根据指定区域生成

代码段:

 1 -(void)viewDidAppear:(BOOL)animated
 2 {
 3     CLLocationCoordinate2D coords[2] = {0};
 4     coords[0].latitude = 39.815;
 5     coords[0].longitude = 116.404;
 6     coords[1].latitude = 39.915;
 7     coords[1].longitude = 116.504;
 8     BMKCoordinateBounds bound;
 9     bound.southWest = coords[0];
10     bound.northEast = coords[1];
11     BMKGroundOverlay* ground = [BMKGroundOverlay groundOverlayWithBounds: bound
12                                                                      icon:[UIImage imageNamed:@"2.jpg"]];
13     [myMapView addOverlay:ground];
14 }
15 -(BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
16 {
17     if ([overlay isKindOfClass:[BMKGroundOverlay class]]){
18         BMKGroundOverlayView* groundView = [[BMKGroundOverlayView alloc] initWithOverlay:overlay];
19         return groundView;
20     }
21     return nil;
22 }
图片图层二

 

转载于:https://www.cnblogs.com/wangyaoguo/p/4886993.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch框架学习二——基本数据结构(张量)

PyTorch框架学习二——基本数据结构&#xff08;张量&#xff09;一、什么是张量&#xff1f;二、Tensor与Variable&#xff08;PyTorch中&#xff09;1.Variable2.Tensor三、Tensor的创建1.直接创建Tensor&#xff08;1&#xff09;torch.tensor()&#xff08;2&#xff09;to…

十年空缺一朝回归,百度正式任命王海峰出任CTO

来源&#xff1a;机器之心百度要回归技术初心了吗&#xff1f;自 2010 年李一男卸任百度 CTO 之后&#xff0c;百度对这一职位就再无公开任命&#xff0c;一空就是 10 年。而今天上午李彦宏突然发出的一纸职位调令&#xff0c;让这个空缺多年的百度 CTO 之位有了新的掌舵手。就…

Windows下卸载TensorFlow

激活tensorflow&#xff1a;activate tensorflow输入&#xff1a;pip uninstall tensorflowProceed&#xff08;y/n&#xff09;:y如果是gpu版本&#xff1a; 激活tensorflow&#xff1a;activate tensorflow-gpu输入&#xff1a;pip uninstall tensorflow-gpuProceed&#xf…

PyTorch框架学习三——张量操作

PyTorch框架学习三——张量操作一、拼接1.torch.cat()2.torch.stack()二、切分1.torch.chunk()2.torch.split()三、索引1.torch.index_select()2.torch.masked_select()四、变换1.torch.reshape()2.torch.transpace()3.torch.t()4.torch.squeeze()5.torch.unsqueeze()一、拼接 …

'chcp' 不是内部或外部命令,也不是可运行的程序

在cmd窗口中输入activate tensorflow时报错chcp 不是内部或外部命令&#xff0c;也不是可运行的程序 添加两个环境变量即可解决&#xff1a; 将Anaconda的安装地址添加到环境变量“PATH”&#xff0c;如果没有可以新建一个&#xff0c;我的安装地址是“D:\Anaconda”&#xf…

2019年全球企业人工智能发展现状分析报告

来源&#xff1a;199IT互联网数据中心《悬而未决的AI竞赛——全球企业人工智能发展现状》由德勤洞察发布&#xff0c;德勤中国科技、传媒和电信行业编译。为了解全球范围内的企业在应用人工智能技术方面的情况以及所取得的成效&#xff0c;德勤于2018年第三季度针对早期人工智能…

PyTorch框架学习四——计算图与动态图机制

PyTorch框架学习四——计算图与动态图机制一、计算图二、动态图与静态图三、torch.autograd1.torch.autograd.backward()2.torch.autograd.grad()3.autograd小贴士4.代码演示理解&#xff08;1&#xff09;构建计算图并反向求导&#xff1a;&#xff08;2&#xff09;grad_tens…

美国准备跳过5G直接到6G 用上万颗卫星包裹全球,靠谱吗?

来源&#xff1a;瞭望智库这项2015年提出的计划&#xff0c;规模极其巨大&#xff0c;总计要在2025年前发射近12000颗卫星。有自媒体认为&#xff0c;该计划表示美国将在太空中建立下一代宽带网络&#xff0c;绕过5G&#xff0c;直接升级到6G&#xff0c;并据此认为“6G并不遥远…

PyTorch框架学习五——图像预处理transforms(一)

PyTorch框架学习五——图像预处理transforms&#xff08;一&#xff09;一、transforms运行机制二、transforms的具体方法1.裁剪&#xff08;1&#xff09;随机裁剪&#xff1a;transforms.RandomCrop()&#xff08;2&#xff09;中心裁剪&#xff1a;transforms.CenterCrop()&…

IBM Watson大裁70% 员工,撕掉了国内大批伪AI企业最后一块遮羞布!

来源:新医路Watson 是IBM 的重量级AI 系统&#xff1b;近年IBM 大力发展AI 医疗&#xff0c;在2015 年成立独立的 Watson Health 部门&#xff0c;并收购多家医疗数据公司&#xff0c;前景看好。然而短短三年&#xff0c;这个明星部门就要裁员50% 到70% 的员工&#xff0c;代表…

PyTorch框架学习六——图像预处理transforms(二)

PyTorch框架学习六——图像预处理transforms&#xff08;二&#xff09;&#xff08;续&#xff09;二、transforms的具体方法4.图像变换&#xff08;1&#xff09;尺寸变换&#xff1a;transforms.Resize()&#xff08;2&#xff09;标准化&#xff1a;transforms.Normalize()…

numpy方法读取加载mnist数据集

方法来自机器之心公众号 首先下载mnist数据集&#xff0c;并将里面四个文件夹解压出来&#xff0c;下载方法见前面的博客 import tensorflow as tf import numpy as np import osdataset_path rD:\PycharmProjects\tensorflow\MNIST_data # 这是我存放mnist数据集的位置 is_…

纳米线传感器来了,传感芯片还会远吗

来源&#xff1a;科学网“无旁路电路”纳米线桥接生长方案 黄辉供图微型气体检测仪 黄辉供图人工智能、可穿戴装备、物联网等信息技术迅猛发展&#xff0c;需要海量的传感器提供支持&#xff0c;大数据和云计算等业务也需要各种传感器实时采集数据来支撑。但目前的传感器存在国…

PyTorch框架学习七——自定义transforms方法

PyTorch框架学习七——自定义transforms方法一、自定义transforms注意要素二、自定义transforms步骤三、自定义transforms实例&#xff1a;椒盐噪声虽然前面的笔记介绍了很多PyTorch给出的transforms方法&#xff0c;也非常有用&#xff0c;但是也有可能在具体的问题中需要开发…

美国芯片简史:军方大力扶持下的产物 但一度被日 韩超越

来源&#xff1a;知乎专栏腾讯科技近日发起系列策划&#xff0c;聚焦各个芯片大国的发展历程。第四期&#xff1a;《美国芯片简史》。集成电路是电子信息产业的的基石&#xff0c;电子信息产业对国民经济与社会发展具有重大推动作用。从全球集成电路产业发展历程来看&#xff0…

PyTorch框架学习八——PyTorch数据读取机制(简述)

PyTorch框架学习八——PyTorch数据读取机制&#xff08;简述&#xff09;一、数据二、DataLoader与Dataset1.torch.utils.data.DataLoader2.torch.utils.data.Dataset三、数据读取整体流程琢磨了一段时间&#xff0c;终于对PyTorch的数据读取机制有了一点理解&#xff0c;并自己…

报告 | 2019年全球数字化转型现状研究报告

来源&#xff1a;Prophet2019年&#xff0c;战略数字化转型的重要性已经不止于IT领域&#xff0c;而影响着全公司的竞争力。企业的相关预算直线攀升&#xff0c;利益相关方所关注的颠覆性技术数量急剧增加。数字化项目开始由首席高管主导&#xff0c;并由相互协作的跨职能团队管…

Android调用binder实现权限提升-android学习之旅(81)

当进程A权限较低&#xff0c;而B权限较高时&#xff0c;容易产生提权漏洞 fuzz测试的测试路径 First level Interface是服务 Second level Interface是服务中对应的接口 1.首先获取第一层和第二层接口&#xff0c;及服务以及对应服务提供的接口 2.根据以上信息结合参数类型信息…

PyTorch框架学习九——网络模型的构建

PyTorch框架学习九——网络模型的构建一、概述二、nn.Module三、模型容器Container1.nn.Sequential2.nn.ModuleList3.nn.ModuleDict()4.总结笔记二到八主要介绍与数据有关的内容&#xff0c;这次笔记将开始介绍网络模型有关的内容&#xff0c;首先我们不追求网络内部各层的具体…

中国17种稀土有啥军事用途?没它们,美军技术优势将归零

来源&#xff1a;陶慕剑观察 稀土就是化学元素周期表中镧系元素——镧(La)、铈(Ce)、镨(Pr)、钕(Nd)、钷(Pm)、钐(Sm)、铕(Eu)、钆(Gd)、铽(Tb)、镝(Dy)、钬(Ho)、铒(Er)、铥(Tm)、镱(Yb)、镥(Lu)&#xff0c;再加上钪(Sc)和钇(Y)共17种元素。中国稀土占据着众多的世界第一&…