FSInteractiveMap 0.1.0

FSInteractiveMap 0.1.0

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最新发布2014年12月

维护者:Arthur Guibert




  • Arthur Guibert

一个图表库,用于在地图上可视化数据。它就像地理图,但适用于iOS!

该库背后的想法是加载地图的SVG文件并在视图中简单地显示它。在此基础上,您可以知道何时点击特定的区域。

请注意,SVG加载相当简单,不支持SVG文件格式的所有功能。它对我来说足够好了,可以显示我在SVG中找到的大部分地图!

截图

  

如何使用

FSInteractiveMap是UIView的子类,因此它可以作为常规视图添加。它基本上是从SVG文件加载地图。默认有一些,但您可以添加任何喜欢的SVG。

NSDictionary* data = @{ @"asia" : @12,
                        @"australia" : @2,
                        @"north_america" : @5,
                        @"south_america" : @14,
                        @"africa" : @5,
                        @"europe" : @20
                      };

FSInteractiveMapView* map = [[FSInteractiveMapView alloc] initWithFrame:self.view.frame];

[map loadMap:@"world-continents-low" withData:data colorAxis:@[[UIColor lightGrayColor], [UIColor darkGrayColor]]];

[map setClickHandler:^(NSString* identifier, CAShapeLayer* layer) {
    self.detailDescriptionLabel.text = [NSString stringWithFormat:@"Continent clicked: %@", identifier];
}];

“可点击”地图的示例

FSInteractiveMapView* map = [[FSInteractiveMapView alloc] initWithFrame:CGRectMake(16, 96, self.view.frame.size.width - 32, 500)];
[map loadMap:@"usa-low" withColors:nil];

[map setClickHandler:^(NSString* identifier, CAShapeLayer* layer) {
    if(_oldClickedLayer) {
        _oldClickedLayer.zPosition = 0;
        _oldClickedLayer.shadowOpacity = 0;
    }

    _oldClickedLayer = layer;

    // We set a simple effect on the layer clicked to highlight it
    layer.zPosition = 10;
    layer.shadowOpacity = 0.5;
    layer.shadowColor = [UIColor blackColor].CGColor;
    layer.shadowRadius = 5;
    layer.shadowOffset = CGSizeMake(0, 0);
}];

如何找到SVG地图

您可以在一些地方找到适合FSInteractiveMap的SVG文件。以下是简短列表: