2016-12-23 2 views
0

Ich versuche ein MKCircle-Overlay auf einer Karte zu erstellen, aber ich möchte, dass die Größe des Kreises auf dem Bildschirm konstant bleibt, wenn der Benutzer zoomt.MapKit MKCircle Radius auf Zoom-Ebene ändern

Wenn der Benutzer zoomt, wird der Radius kleiner und wenn der Benutzer verkleinert, wird der Radius größer.

Ich arbeite in Swift 3. Gibt es eine bestimmte MapKit-Methode, die ich verwenden sollte, um dies zu erreichen? Ich weiß, dass es eine Option gibt, ein Bild eines Kreises als Anmerkung zu verwenden, aber ich möchte die Farbe des Kreises dynamisch ändern.

Mit anderen Worten, ich möchte die MKCircle die gleiche Art und Weise ein MKPolyline Skalen skalieren, wie Sie vergrößern und verkleinern

Antwort

0

So wie der Benutzer in zoomt, wird der Radius kleiner und wie der Benutzer zoomt, wird der Radius

ein MKCircle vermutlich Teil eines overlay (MKOverlay) größer sein würde. Ein Overlay funktioniert durch Simulation der Zeichnung auf der Erde selbst. Somit ändert sich die Zeichnung mit der Zoomstufe.

Wenn Sie das nicht möchten, verwenden Sie kein MKOverlay. Sie könnten zum Beispiel eine normale Ansicht erstellen, die einen Kreis anzeigt und vor die Kartenansicht legt. Oder Sie könnten stattdessen eine Annotation verwenden (MKAnnotation); Das Bild einer Anmerkung verändert sich nicht, wenn die Karte gezoomt wird.

+0

Ah ich sehe jetzt, dass meine Frage verwirrend war. Ich denke, ich möchte nicht, dass sich die Größe der Kreisgröße beim Zoomen ändert. Grundsätzlich, wenn der Benutzer zoomt, möchte ich die Größe des Kreises in Bezug auf den Bildschirm nicht ändern. Ich werde Ihren Vorschlag mit einer zusätzlichen Ansicht versuchen –

+0

Allerdings würde diese Ansicht nicht ändern, wie der Benutzer die Karte schwenkt? Ich möchte, dass der Kreis an einem bestimmten Punkt (Koordinaten) auf der Karte bleibt, während der Benutzer schwenkt –

+1

Sicher, das ist ein Problem. Wenn Sie eine normale Ansicht verwenden, müssen Sie den Benutzer schwenken und die Ansicht verschieben. Deshalb habe ich eine Annotation als alternativen Ansatz vorgeschlagen. Aber das Hauptziel meiner Antwort war, zu zeigen, warum ein Overlay _not_ nicht der Weg ist, dies zu tun, weil, was Sie beschreiben, ist nicht, was ein overlay_is_ ist. – matt