Ich wechselte von Google Maps API für iOS zu hier Karten API für iOS. Ich möchte das Schwenken/Scrollen der Karte beim Zoomen deaktivieren, um die GPS-Position des Mittelpunkts gleich zu halten. Irgendein Vorschlag? Danke im Voraus.Panning beim Zoomen deaktivieren
Antwort
Sie könnten [MPAMapView disableMapGestures:] API verwenden, um das Panning/Scrollen zu deaktivieren. Details finden Sie unter https://developer.here.com/mobile-sdks/documentation/ios/topics/map-gestures.html
Sie können diesen Anwendungsfall mit einer Kombination von NMAMapGestureDelegate
und NMAMapViewDelegate
erreichen.
Beispielsweise können Sie die Handlermethode NMAMapGestureDelegate
- (void)mapView:(NMAMapView *)mapView didReceivePinch:(float)pinch atLocation:(CGPoint)location;
implementieren, um zusätzlichen Code hinzuzufügen, um die Gesten zu deaktivieren, die Sie blockieren möchten. Aktivieren Sie die Gesten erneut, sobald die Pinch-Geste beendet ist.
So etwas sollte es tun, können Sie bei der Umsetzung ein wenig spielen müssen, um es zum Laufen zu bringen, wie Sie möchten:
- (void)mapView:(NMAMapView *)mapView didReceivePinch:(float)pinch atLocation:(CGPoint)location
{
[mapView disableMapGestures:(NMAMapGestureTypePan | NMAMapGestureTypeTwoFingerPan)];
// execute default pinch behaviour
[mapView.defaultGestureHandler mapView:mapView didReceivePinch:pinch atLocation:location];
}
...
- (void)mapViewDidEndMovement:(NMAMapView *)mapView
{
[mapView enableMapGestures:NMAMapGestureTypeAll];
}
Sie können schau auch NMAMapView
- (NSInteger)respondToEvents:(NSInteger)events withBlock:(NMAMapEventBlock)block
. Es ist möglich, dass die Reaktion auf das Ereignis NMAMapEventGestureEnded
mit respondToEvents
möglicherweise besser für Ihren Anwendungsfall funktioniert.
Weitere Informationen:
- 1. UIScrollView: Scrolling beim Zoomen deaktivieren
- 2. Google Maps Deaktivieren des Benutzer-Panning für alle Ereignisse
- 3. Pinch zum Zoomen deaktivieren IE10
- 4. OpenLayers: Zoomen bei Doppelklick deaktivieren
- 5. Google Maps Android MapView v2: Zoomen deaktivieren
- 6. Kendo Stockchart deaktivieren Zoomen in Stunden Ebene
- 7. Google Maps Center beim Zoomen
- 8. Hinzufügen einer Skala zu Leinwand Bild zoomen
- 9. D3.JS Zeitreihenliniendiagramm mit Echtzeitdaten, Panning und
- 10. Verhindern des Bildlaufs in einer MKMapView, auch beim Zoomen
- 11. Wie funktioniert Zoomen, Schwenken und Drehen?
- 12. Google Maps Overlay flackert beim Zoomen
- 13. Seitengröße beim Zoomen unter iOS ändern
- 14. DefaultClusterRenderer getMarker() gibt Null beim Zoomen zurück
- 15. Google Maps InfoBox ändert Position beim Zoomen
- 16. MPAndroidChart - Wie ändere ich ValueFormatter beim Zoomen?
- 17. Iphone/Ipad stürzt beim Zoomen ab
- 18. IE9 beim Zoomen des Bildschirms Problem
- 19. Handhabung von Zoom und Panning innerhalb von UIWebView
- 20. OrbitControls - Kann ich das Zoomen dynamisch aktivieren/deaktivieren?
- 21. Three.js Objekt in Div mit Zoom deaktivieren, scrollen/zoomen Dokument
- 22. Zoomen auf iPhone Safari mit Javascript aktivieren/deaktivieren?
- 23. Browser zoomen bei bestimmten Elementen in Firefox deaktivieren
- 24. Prise zum Zoomen automatisch aktivieren/deaktivieren WKWebView und viewForZoomingInScrollView
- 25. Android Soft-Tastatur Panning nicht Webansicht
- 26. Was ist falsch an diesem Bild-Panning-Algorithmus?
- 27. Google Maps - Schwenken und Zoomen in Bereiche - Marker werden beim Zoomen oder Schwenken nicht angezeigt - HILFE!
- 28. ViewController Animation wie Zoomen und Zoomen
- 29. Weird Overlay zeichnen Verhalten beim Zoomen im MapView
- 30. SVG-Kreise werden beim Zoomen der Flugblattkarte nicht neu positioniert
Ich habe bereits versucht Geste zu deaktivieren, während Prise durchführen. Problem ist, dass wenn Sie auf Kanten, d. H. Nicht in der Mitte der Karte. Das Kartenzentrum bewegt sich weg. In Google Maps iOS SDK kann dies durch allowScrollGesturesDuringRotateOrZoom Eigenschaft der gmsuisettings Klasse erreicht werden. –
Es klingt, als ob Sie versuchen sollten, 'NMAMap'' transformCenter' und 'fixedMapCenterOnMapRotateZoom' zu verwenden. – AndrewJC
Hallo Andrew, vielen Dank für Ihre schnellen Antworten. Obwohl die Eigenschaft fixedMapCenterOnMapRotateZoom in der Dokumentation definiert ist, sieht es leider so aus, als wäre diese Eigenschaft in SDK ver 3.1.1 entfernt. –