¿Cómo puedo llamar a API y configurar el fabricante y el polígono en el mapa de Google sin congelaciones? -- ios campo con swift campo con google-maps campo con google-maps-markers campo con grand-central-dispatch camp Relacionados El problema

How can I Call API and Set Maker and Polygon on Google map without freezes?


1
vote

problema

Español

En mi aplicación Mapa, estoy mostrando casi 1500 área en la ciudad usando GMUClusterManager . Estoy llamando a la API y configuro gsmarker y la función de llamada en

   DispatchQueue.main.asyncAfter(deadline: .now() + 0.1, execute: {   })   

En el proceso de Proceso API con UIActivityIndicatorView Mostrar para que el usuario no pueda tocar en la pantalla. Después del cierto nivel de zoom, estoy mostrando parcela de esta área alrededor de 300 a 400 . Cuando se establece la trama usando para el bucle, se congele la interfaz de usuario para 3-4 segundos. El código está a continuación.

  for i in self.plotPolygon {          DispatchQueue.main.async {              i.map = self.mapView          } }  for i in self.plotMarkers {      DispatchQueue.main.async {          i.map = self.mapView      } }   

parcela está llegando a través de la llamada API con DispatchQueue y configure con GMSMarker y GMSPolygon . La foto se da a continuación.

Ingrese la descripción de la imagen aquí

Después de ciertos alejar en la trama, se elimina de google map . Aquí el problema es que cada vez que se acerca a la llamada de la API de la trama de proceso y en el alejar, retire del mapa y cada vez UIActivityIndicatorView Mostrar.

Así que mi pregunta se da a continuación.

¿Cómo puedo llamar a API y establecer datos sin congelar la UI y configurar en Google Map?

Original en ingles

In my Map Application I am showing almost 1500 area in city using GMUClusterManager. I am calling API and set GSMarker and calling function in

 DispatchQueue.main.asyncAfter(deadline: .now() + 0.1, execute: {   }) 

in API process start with UIActivityIndicatorView Show so user can't touch on screen. After the certain level of zoom I am showing Plot of this area it around 300 to 400. when plot set using for loop it freeze UI for 3-4 seconds.code is below.

for i in self.plotPolygon {          DispatchQueue.main.async {              i.map = self.mapView          } }  for i in self.plotMarkers {      DispatchQueue.main.async {          i.map = self.mapView      } } 

Plot is getting through API Calling with DispatchQueue and set with GMSMarker and GMSPolygon. photo is given below.

enter image description here

after certain zoom out on plot is remove from Google map. here problem is that every time zoom in process plot API call and in zoom out remove from map and every time UIActivityIndicatorView show.

so my question is given below.

How can I call API and set data without freezes UI and set on Google Map ?

              

Lista de respuestas


Relacionados problema

0  Despacha_Queue nombre e hilo  ( Dispatch queue name and thread ) 
Hay un método de botón: -(void) buttonTapped:(id) sender{ dispatch_async(dispatch_queue_create("countQueue", NULL), ^{ sleep(10); NSLog...

0  iOS: ¿Cómo actualizar el SQLite correctamente en el fondo cuando se recibe una respuesta del servidor (en multi hilo)?  ( Ios how to update the sqlite correctly in background when a response from the s ) 
Me gustaría actualizar de mi sqlite cuando recibo una respuesta del servidor. Utilizo ese código para iniciar varios hilos en segundo plano: if ([[Reac...

19  AutoreleaseFrecuencia en Dispers Swift 3  ( Autoreleasefrequency on dispatchqueue in swift 3 ) 
En Xcode 8 Beta 5, el inicializador para Type t = typeof(T); t.GetProperty("company", BindingFlags.IgnoreCase) 3 ha cambiado para aceptar argumentos separad...

1  Xcode Swift ¿Cómo ejecuto el código después de presionar un botón, pero en otro archivo / clase?  ( Xcode swift how do i execute code after a button is pressed but in another file ) 
Estoy usando Mapkit, y el usuario tiene la capacidad de agregar anotaciones. Pueden tocar en la pantalla, lo que les indica si quieren agregar una anotación c...

7  Cómo usar el despacho_queue_set_specific () y Dispatch_get_Specific ()  ( How to use dispatch queue set specific and dispatch get specific ) 
Estoy pasando mucho tiempo para encontrar buenos ejemplos sobre cómo usar estas funciones. static void * kQueue1Key = "key1"; static void * kQueue2Key = "k...

4  IOS GCD COMUNIDAD COMUNIDAD COLOCURACIÓN DE EJECUCIÓN SECUENCIA  ( Ios gcd custom concurrent queue execution sequence ) 
Tengo preguntas sobre este tema, Según los documentos de Apple concurrente Las colas concurrentes (también conocidas como un tipo de cola de despacho glo...

2  Usando la misma cola de envío en un método para el procesamiento de antecedentes  ( Using the same dispatch queue in a method for background processing ) 
Tengo un método que actualiza dos secciones en una tabla que toma un tiempo. Quiero hacer algo como: obj.Foo(3,4)111 Si uso la misma baja en el mismo mé...

0  La interacción del usuario hace que A para el bucle se mueva hacia el siguiente objeto  ( User interaction causes a for loop to move onto the next object ) 
Tengo una matriz de objetos en los que esto para el bucle entra a través de. Cada objeto es una dirección IP para la prueba. Sin embargo, una vez que el bucle...

2  Acceso concurrente a una única estructura de datos de FFFSetup en GCD  ( Concurrent access to a single fftsetup data structure in gcd ) 
¿Está bien crear una estructura de datos double9 para realizar múltiples computaciones de FFT al mismo tiempo? ¿Me gustaría algo así como el siguiente trab...

1  Dos tareas de larga duración con un hilo de actualización utilizando GCD  ( Two long running tasks with one update thread using gcd ) 
Estoy tratando de actualizar una tabla agrupada. Hay un filtro, por lo que a veces, los datos no se muestran en la segunda sección. Los datos siempre se muest...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos