Sto cercando di capire un modo semplice per determinare in Google Maps per iOS se un determinato GMSMarker si trova entro i limiti della mappa visibile. Sembra che ci siano soluzioni per questo nell'API di Javascript, ma a parte forse fare qualche ragionamento complesso basato su this post non sembra esserci un modo.Google Maps per iOS: come si può sapere se un marker si trova entro i limiti dello schermo?
risposta
Recupera i limiti del viewport con GMSVisibleRegion e crea un GMSCoordinateBounds con esso. Chiama il numero containsCoordinate
, passando nella posizione del marcatore. Dovrebbe restituire true se il marker si trova all'interno della finestra e false se non lo è.
Un esempio di codice in base alla risposta utile di Andy:
- (void)snapToMarkerIfItIsOutsideViewport:(GMSMarker *)m{
GMSVisibleRegion region = _mapView.projection.visibleRegion;
GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithRegion:region];
if (![bounds containsCoordinate:m.position]){
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:m.position.latitude
longitude:m.position.longitude
zoom:_mapView.camera.zoom];
[self.mapView animateToCameraPosition: camera];
}
}
Grazie mille! funziona perfettamente! mi fa risparmiare un sacco di tempo – youssman
Spero che questo codice può aiutare a cacciatori di codice.
NSMutableArray *mutArrMarkers; //Have all markers added on Map
.
.
.
.
NSMutableArray *mutArrMarkersInPath = [NSMutableArray array];
[mutArrMarkers enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
GMSMarker *marker = obj;
if(GMSGeometryContainsLocation(currentCoordinates, pathToCheck, YES)){
[mutArrMarkersInPath addObject:marker];
}
}];
Ho scritto sul metodo per trovare GMSMarker in particolare frame. Imposta la cornice del rettangolo (x, y, maxX, maxY). È possibile impostare qualsiasi frame dallo schermo che indica che il marker trova è in quel frame oppure no ..
- (BOOL)isGoogleMapMarkerVisible:(GMSMarker*)marker {
//Marker point
CGPoint markerpoint = [self.mapview.projection pointForCoordinate:marker.position];
//Maximum visible region from x and y axis
float x = 0.0;
float y = o.o;
float maxX = self.mapview.frame.size.width;
float maxY = self.mapview.frame.size.height;
//If marker point is on visible region return true else return false
if (markerpoint.x > x && markerpoint.y > y && markerpoint.x < maxX && markerpoint.y < maxY) {
return YES;
}
else {
return NO;
}
}
La versione 4 rapida della risposta. Restituzione di un booleano se l'indicatore all'interno della regione dello schermo o no
func isMarkerWithinScreen(marker: GMSMarker) -> Bool {
let region = self.mapView.projection.visibleRegion()
let bounds = GMSCoordinateBounds(region: region)
return bounds.contains(marker.position)
}
- 1. Rimuovi i marker da google maps iOS
- 2. rilevare se cursore si trova entro i limiti di un controllo
- 3. Imposta i limiti di Google Maps con angular-google-maps
- 4. Come adattare i limiti per l'array di coordinate con google maps sdk per iOS?
- 5. Come ruotare un marker su Google Maps?
- 6. Google Maps Marker Mostra/nascondi
- 7. Come nascondere i marker Api di Google Maps con jQuery
- 8. Come sapere quale Marker è stato cliccato su Google Maps v2 per Android?
- 9. Trova se un angolo si trova entro X gradi da un altro
- 10. Come si limita la panoramica nell'API di Google Maps V3?
- 11. Come si elimina un indicatore su Google Maps?
- 12. Come sapere se il cursore del mouse si trova sullo schermo del desktop?
- 13. Google maps GeoJSON- attiva/disattiva livelli marker?
- 14. Come si può sapere se l'iphone viene bloccato?
- 15. Come posso intercettare tocchi su un marker in Google Maps SDK per iOS?
- 16. come disegnare un percorso tra due marker in google maps
- 17. Come si può sapere se un'attività viene avviata senza transizione?
- 18. Google Maps + Jquery: Marker bug in IE
- 19. Come sapere se un dispositivo Android è vicino a un indirizzo google maps api
- 20. L'app iOS si blocca durante il caricamento della finestra di informazioni personalizzate per il marker su Google Maps
- 21. Google Maps - Migliaia di marker - JSON
- 22. Come rimuovere un singolo marker utilizzando Google Maps V2?
- 23. Orientamento dello schermo ios
- 24. Google Maps iOS SDK incidente occasionale quando si distrugge GMSMapView
- 25. Google Maps: Render marker above markerclusterer
- 26. Google Maps - Multiple marker from extern json
- 27. Come si può sapere se si utilizza un pacchetto, una procedura o una funzione PL/SQL?
- 28. marker multipli google maps embed API
- 29. Disegna un marker come google maps con TCanvas su Delphi
- 30. Confine trascinamento di Google Maps V3 Marker su Polyline
Che ha funzionato come un fascino, grazie! –
Farò un esempio di codice in una risposta ... –