2012-12-18 40 views
2

我试图找到我的方式使用SVGKit(https://github.com/SVGKit/SVGKit)处理地理地图的iOS项目。SVGKIT的地理地图

此时,我可以使用CALayer对象访问地图上的特定区域。这让我可以访问该地区周围的矩形。

下面是我用这个代码:

CALayer *layer=[svgView.document layerWithIdentifier:@"myLayerID"]; 
[layer setBackgroundColor:[UIColor orangeColor].CGColor]; 

if([layer isKindOfClass:[CAShapeLayer class]]) 
{ 
    CAShapeLayer* shapeLayer = (CAShapeLayer*) layer; 
    NSLog(@"That is good so far!"); 
    layer.mask=shapeLayer; 
} 

但我需要访问地图的精确区域;不仅是周围的矩形,以突出它。 我有种阅读我应该使用CGPathRef和一个掩码。

我该如何做到这一点?

感谢您的任何提示。

回答

0

当您找到CALayer时,将其转换为CAShapeLayer(如果可以的话;如果您有合适的图层,则应该可以正常工作)。

if([layer isKindOfClass:[CAShapeLayer class]]) 
{ 
    CAShapeLayer* shapeLayer = (CAShapeLayer*) layer; 

    // Now you have access to lots more Apple methods 
} 

然后,你可以chnage线宽,填充颜色等 - 各种时髦的东西。

还可以看看CALayer.shadow * - Apple提供的各种功能,可以自动调整图层的可见部分。

+0

感谢您的回复。其实是的,我可以将它投射到CAShapeLayer上。 但我仍然没有达到高兴的地方。 我编辑我的问题,以反映我所做的。 我认为我得到的CAShapeLayer已经有了正确的路径,可以用作适当的掩码。 这是错误的吗?我有点迷失在这里。我认为使用SVGKit会让事情变得相当容易,但显然情况并非如此,至少在开始的时候。 – Michel

+0

您需要阅读Apple API文档...上面的代码没有意义。你不能使用图层作为自己的掩码! – Adam