|
@@ -22,6 +22,7 @@ typedef enum {
|
|
|
@interface AMShipAnnotation : MKPointAnnotation
|
|
@interface AMShipAnnotation : MKPointAnnotation
|
|
|
|
|
|
|
|
@property (nonatomic,assign) AMShipAnnotationPriority priority;
|
|
@property (nonatomic,assign) AMShipAnnotationPriority priority;
|
|
|
|
|
+@property (nonatomic,copy) NSString *imageName;
|
|
|
|
|
|
|
|
@end
|
|
@end
|
|
|
|
|
|
|
@@ -37,7 +38,7 @@ typedef enum {
|
|
|
|
|
|
|
|
@implementation AMShipMap
|
|
@implementation AMShipMap
|
|
|
|
|
|
|
|
-- (void)handleLoaction:(NSDictionary *)location Priority:(AMShipAnnotationPriority)priority {
|
|
|
|
|
|
|
+- (void)handleLoaction:(NSDictionary *)location Priority:(AMShipAnnotationPriority)priority ImageName:(NSString *)imgName {
|
|
|
if (location == nil) {
|
|
if (location == nil) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
@@ -58,6 +59,7 @@ typedef enum {
|
|
|
ann.title = name;
|
|
ann.title = name;
|
|
|
ann.subtitle = addr;
|
|
ann.subtitle = addr;
|
|
|
ann.priority = priority;
|
|
ann.priority = priority;
|
|
|
|
|
+ ann.imageName = imgName;
|
|
|
|
|
|
|
|
// 将大头针数据模型添加到MKMapView上管理
|
|
// 将大头针数据模型添加到MKMapView上管理
|
|
|
[self.mapView addAnnotation:ann];
|
|
[self.mapView addAnnotation:ann];
|
|
@@ -104,37 +106,37 @@ typedef enum {
|
|
|
if (locationInfo) {
|
|
if (locationInfo) {
|
|
|
NSDictionary *pol = [locationInfo objectForKey:@"pol"];
|
|
NSDictionary *pol = [locationInfo objectForKey:@"pol"];
|
|
|
if (self.showPol) {
|
|
if (self.showPol) {
|
|
|
- [self handleLoaction:pol Priority:AMShipAnnotationPriorityHigh];
|
|
|
|
|
|
|
+ [self handleLoaction:pol Priority:AMShipAnnotationPriorityHigh ImageName:@"location_pol"];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
NSDictionary *pod = [locationInfo objectForKey:@"pod"];
|
|
NSDictionary *pod = [locationInfo objectForKey:@"pod"];
|
|
|
if (self.showPod) {
|
|
if (self.showPod) {
|
|
|
- [self handleLoaction:pod Priority:AMShipAnnotationPriorityHigh];
|
|
|
|
|
|
|
+ [self handleLoaction:pod Priority:AMShipAnnotationPriorityHigh ImageName:@"location_pod"];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
NSDictionary *poe = [locationInfo objectForKey:@"poe"];
|
|
NSDictionary *poe = [locationInfo objectForKey:@"poe"];
|
|
|
if (self.showPoe) {
|
|
if (self.showPoe) {
|
|
|
- [self handleLoaction:poe Priority:AMShipAnnotationPriorityLow];
|
|
|
|
|
|
|
+ [self handleLoaction:poe Priority:AMShipAnnotationPriorityLow ImageName:@"location_poe"];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
NSDictionary *por = [locationInfo objectForKey:@"por"];
|
|
NSDictionary *por = [locationInfo objectForKey:@"por"];
|
|
|
if (self.showPor) {
|
|
if (self.showPor) {
|
|
|
- [self handleLoaction:por Priority:AMShipAnnotationPriorityLow];
|
|
|
|
|
|
|
+ [self handleLoaction:por Priority:AMShipAnnotationPriorityLow ImageName:@"location_por"];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
NSDictionary *origin = [locationInfo objectForKey:@"origin"];
|
|
NSDictionary *origin = [locationInfo objectForKey:@"origin"];
|
|
|
if (self.showOrigin) {
|
|
if (self.showOrigin) {
|
|
|
- [self handleLoaction:origin Priority:AMShipAnnotationPriorityLow];
|
|
|
|
|
|
|
+ [self handleLoaction:origin Priority:AMShipAnnotationPriorityLow ImageName:@"location_origin"];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
NSDictionary *destination = [locationInfo objectForKey:@"destination"];
|
|
NSDictionary *destination = [locationInfo objectForKey:@"destination"];
|
|
|
if (self.showDestination) {
|
|
if (self.showDestination) {
|
|
|
- [self handleLoaction:destination Priority:AMShipAnnotationPriorityLow];
|
|
|
|
|
|
|
+ [self handleLoaction:destination Priority:AMShipAnnotationPriorityLow ImageName:@"location_destination"];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
NSDictionary *current = [locationInfo objectForKey:@"current"];
|
|
NSDictionary *current = [locationInfo objectForKey:@"current"];
|
|
|
if (self.showCurrent) {
|
|
if (self.showCurrent) {
|
|
|
- [self handleLoaction:current Priority:AMShipAnnotationPriorityRequired];
|
|
|
|
|
|
|
+ [self handleLoaction:current Priority:AMShipAnnotationPriorityRequired ImageName:@"ic_marker"];
|
|
|
}
|
|
}
|
|
|
[self moveToLocation:current];
|
|
[self moveToLocation:current];
|
|
|
}
|
|
}
|
|
@@ -152,8 +154,15 @@ typedef enum {
|
|
|
if (!pinView) { // 如果没有可重用的大头针视图就创建并指定重用标识
|
|
if (!pinView) { // 如果没有可重用的大头针视图就创建并指定重用标识
|
|
|
pinView = [[AMAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PIN"];
|
|
pinView = [[AMAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PIN"];
|
|
|
}
|
|
}
|
|
|
- pinView.image = [UIImage imageNamed:@"ic_marker"];
|
|
|
|
|
|
|
+
|
|
|
AMShipAnnotation *shipAnnotation = (AMShipAnnotation *)annotation;
|
|
AMShipAnnotation *shipAnnotation = (AMShipAnnotation *)annotation;
|
|
|
|
|
+
|
|
|
|
|
+ if (shipAnnotation.imageName) {
|
|
|
|
|
+ pinView.image = [UIImage imageNamed:shipAnnotation.imageName];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ pinView.image = [UIImage imageNamed:@"ic_marker"];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if (@available(iOS 11,*)) {
|
|
if (@available(iOS 11,*)) {
|
|
|
if (shipAnnotation.priority == AMShipAnnotationPriorityRequired) {
|
|
if (shipAnnotation.priority == AMShipAnnotationPriorityRequired) {
|
|
|
pinView.displayPriority = MKFeatureDisplayPriorityRequired;
|
|
pinView.displayPriority = MKFeatureDisplayPriorityRequired;
|