2013-03-13 8 views
7

में एक सर्कल को प्रदर्शित करने के लिए मुझे एक GMSMapView पर एक सर्कल (एमकेसीकल के साथ) प्रदर्शित करने की आवश्यकता है। MKMapView और MKCircle का उपयोग करते समय यह आसान है, लेकिन GMSMapView के साथ MKCircle का उपयोग नहीं कर सकता है। कोई विचार?GMSMapView

अद्यतन:
यह वर्तमान (18.03.2013) विकल्प हैं:
1. जमीन एक चक्र चित्र वाली मार्कर।
2. कई सेगमेंट (पॉलीलाइन) के साथ बनाया गया एक सर्कल।

संपादित करें:
3. गूगल एक GMSCircle (23.04.2013)

GMSGroundOverlayOptions *overlayOptions = [GMSGroundOverlayOptions options]; 
    overlayOptions.icon = [UIImage imageNamed:@"circle"]; 
    overlayOptions.position = touchMapCoordinate; 
    overlayOptions.bearing = 0; 
    overlayOptions.zoomLevel = 14.3; 
[mapView addGroundOverlayWithOptions:overlayOptions]; 

एक चक्र छवि के लिए 40x40 पिक्सल यह ठीक लग रहा है जोड़ा। (त्रिज्या लगभग 100 मीटर है)

छोटे हिस्सों में बंटा हुआ पथ समाधान:

GMSPolylineOptions *circle = [GMSPolylineOptions options]; 
    CGPoint touchPoint = [mapView.projection pointForCoordinate:touchMapCoordinate]; 
    GMSMutablePath *path = [GMSMutablePath path]; 

    CGPoint circlePoint; 

    for (int i = 0; i < 360; i++) 
    { 
     circlePoint.x = touchPoint.x + radius * cos(i*M_PI/180); 
     circlePoint.y = touchPoint.y + radius * sin(i*M_PI/180); 

     CLLocationCoordinate2D aux = [mapView.projection coordinateForPoint:circlePoint]; 
     [path addCoordinate:aux]; 
    } 

    circle.path = path; 
    circle.width = 1; 

    [mapView addPolylineWithOptions:circle]; 

संपादित करें: 08.05.2013

GMSCircle समाधान:

 CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(latitude, longitude); 
    GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter 
            radius:1000]; 

    circ.fillColor = [UIColor blueColor]; 
    circ.strokeColor = [UIColor redColor]; 
    circ.strokeWidth = 5; 
    circ.map = mapView; 
+0

आप प्रकाशित कर सकते हैं कि तुम क्या अब तक की कोशिश की है: enter image description here

और यहाँ, हम एक बिट से ज़ूम आउट कर रहे हैं? – Noich

+0

मुझे नहीं पता कि कैसे शुरू करना है। मैंने GMSGroundOverlay और GMSGroundOverlayOptions का उपयोग एक सर्कल आइकन जोड़ने के बारे में सोचा, लेकिन इसका मतलब है कि सर्कल में हर समय एक विशिष्ट त्रिज्या होता है। – Bogus

+0

यह आईओएस 8 –

उत्तर

1

फिलहाल एसडीके नहीं करता है सर्कल का समर्थन नहीं करते हैं, लेकिन यहां मंडलियों को जोड़ने का एक फीचर अनुरोध है:

https://code.google.com/p/gmaps-api-issues/issues/detail?id=4971

इस बीच आप कई छोटे सेगमेंट के साथ पॉलीलाइन ड्राइंग करके एक सर्कल बना सकते हैं?

+0

के लिए काम नहीं कर सकता विचार के लिए धन्यवाद! – Bogus

7

प्रश्न एक वर्ष से अधिक पुराना होने के बाद थोड़ा देर हो चुकी है, लेकिन Google की खोज ने मुझे यहां ले जाया, इसलिए मैंने सोचा कि मैं इसे अपडेट कर दूंगा। पोस्टरिटी 4TW!

अब GMSCircle है जो मुझे पता है, जहां तक ​​मुझे पता है, बस MKCircle कर सकते हैं।
Google's documentation on the GMSCircle

// Build a circle for the GMSMapView 
GMSCircle *geoFenceCircle = [[GMSCircle alloc] init]; 
geoFenceCircle.radius = 130; // Meters 
geoFenceCircle.position = SOME_CLLOCATION.coordinate; // Some CLLocationCoordinate2D position 
geoFenceCircle.fillColor = [UIColor colorWithWhite:0.7 alpha:0.5]; 
geoFenceCircle.strokeWidth = 3; 
geoFenceCircle.strokeColor = [UIColor orangeColor]; 
geoFenceCircle.map = mapView; // Add it to the map. 

ऐसा नहीं है कि में एक MKCircle (ओवरले) बिल्कुल उसी प्रकार से व्यवहार करता है यह नक्शा, आदि के ज़ूम स्तर केंद्र में नीले वृत्त पर ध्यान न दें साथ आकार बदलता है; वह मानचित्र दृश्य पर दिखाया गया उपयोगकर्ता स्थान है, और मैंने अभी GMSCircle के केंद्र बिंदु के लिए समान समन्वय का उपयोग किया है।

सुपर आसान। छवियों की जाँच करें:

एक ज़ूम स्तर: enter image description here

+0

क्या सर्कल पर टेक्स्ट खींचना संभव है? –

+0

GMSOverlays में 'शीर्षक' संपत्ति है जिसका उपयोग कुछ मार्कर प्रकारों में टेक्स्ट जोड़ने के लिए किया जा सकता है।यदि वह आपको प्राप्त नहीं करता है, और यह कुछ है जो मैंने अतीत में सफलता के साथ किया है, तो आप जीएमएसमार्कर को उप-वर्गीकृत कर सकते हैं और आइकन को उस पाठ के रूप में बदल सकते हैं जिसे आप चाहते हैं (आपको एक छवि बनाना होगा यह, जैसा कि मुझे याद है)। फिर आप इसे अपने सर्कल के समान स्थान पर रख सकते हैं (या अपने जीएमएसमार्कर उपclass में एक सदस्य के रूप में सर्कल जोड़ें)। https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_overlay – u2Fan

+0

हे, मैं मानचित्र पर सर्कल को ठीक करना चाहता हूं और सर्कल के अंदर जगहों को प्राप्त करना चाहता हूं, उपयोगकर्ता मानचित्र को स्थानांतरित कर सकता है लेकिन सर्कल रहेगा एक ही स्थिति में कोई मदद? धन्यवाद - कुलदीप @ u2Fan – dreamBegin

संबंधित मुद्दे