2012-12-18 42 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