Commit 5e7c4826 authored by 7c00's avatar 7c00

实现 ios 海量点图层(MultiPoint)

parent 682c4685
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "point.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
#import <MAMapKit/MAMapKit.h>
#import "AMapModel.h"
#pragma ide diagnostic ignored "OCUnusedPropertyInspection"
@interface AMapHeatMap : AMapModel
@end
#import "AMapHeatMap.h"
#import "Coordinate.h"
#pragma ide diagnostic ignored "OCUnusedMethodInspection"
......
#import <React/RCTComponent.h>
#import <MAMapKit/MAMapKit.h>
#import "AMapModel.h"
@interface AMapMultiPoint : AMapModel <MAMultiPointOverlayRendererDelegate>
@property(nonatomic, copy) RCTBubblingEventBlock onItemPress;
@end
#import "AMapMultiPoint.h"
#pragma ide diagnostic ignored "OCUnusedMethodInspection"
@implementation AMapMultiPoint {
NSArray<MAMultiPointItem *> *_items;
MAMultiPointOverlayRenderer *_renderer;
MAMultiPointOverlay *_overlay;
UIImage *_image;
}
- (void)setPoints:(NSArray<MAMultiPointItem *> *)points {
_items = points;
}
- (void)setImage:(NSString *)name {
_image = [UIImage imageNamed:name];
}
- (MAOverlayRenderer *)renderer {
if (_renderer == nil) {
_overlay = [[MAMultiPointOverlay alloc] initWithMultiPointItems:_items];
_renderer = [[MAMultiPointOverlayRenderer alloc] initWithMultiPointOverlay:_overlay];
_renderer.delegate = self;
if (_image != nil) {
_renderer.icon = _image;
}
}
return _renderer;
}
- (void)multiPointOverlayRenderer:(MAMultiPointOverlayRenderer *)renderer didItemTapped:(MAMultiPointItem *)item {
self.onItemPress(@{
@"index": @([_items indexOfObject:item]),
});
}
@end
#import <MAMapKit/MAMapView.h>
#import <React/RCTViewManager.h>
#import "AMapMultiPoint.h"
#pragma ide diagnostic ignored "OCUnusedClassInspection"
@interface AMapMultiPointManager : RCTViewManager
@end
@implementation AMapMultiPointManager {
}
RCT_EXPORT_MODULE()
- (UIView *)view {
return [AMapMultiPoint new];
}
RCT_EXPORT_VIEW_PROPERTY(points, MAMultiPointItemArray)
RCT_EXPORT_VIEW_PROPERTY(image, NSString)
RCT_EXPORT_VIEW_PROPERTY(onItemPress, RCTBubblingEventBlock)
@end
......@@ -31,6 +31,12 @@ RCT_ENUM_CONVERTER(MAPinAnnotationColor, (@{
return node;
}
+ (MAMultiPointItem *)MAMultiPointItem:(id)json {
MAMultiPointItem *item = [MAMultiPointItem new];
item.coordinate = [self CLLocationCoordinate2D:json];
return item;
}
+ (MACoordinateRegion)MACoordinateRegion:(id)json {
return MACoordinateRegionMake(
[self CLLocationCoordinate2D:json],
......@@ -47,6 +53,7 @@ RCT_ENUM_CONVERTER(MAPinAnnotationColor, (@{
RCT_ARRAY_CONVERTER(Coordinate)
RCT_ARRAY_CONVERTER(MAHeatMapNode)
RCT_ARRAY_CONVERTER(MAMultiPointItem)
RCT_ARRAY_CONVERTER(AMapNaviPoint)
@end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment