2017-01-17 2 views
0

Actuellement, nous consommons un service wms au lieu d'Apple Map. nous remplaçons LoadTileAtPath pour renvoyer les tuiles du serveur.Comment limiter Mapkit à certains niveaux de zoom?

Notre problème est que les applications prend à la charge beaucoup plus de temps dans les régions éloignées, nous avions prévu de limiter les niveaux de zoom aux niveaux inférieurs

Niveaux

1:1,250 

1:25,000 

1:250,000 

avec l'aide de documenter au sujet de zoom levels I restreindre les valeurs z à 19 ou 15 ou 11

ici, la méthode

nuint ClampedZ(nuint z) 
     { 
      //19,15,11 

      List<nuint> supportedLayers = new List<nuint>(){ 11, 15, 19 }; 
      nuint toRet = z; 
      nuint min = supportedLayers[0]; //supportedLayers[]; 
      nuint Prevmin = min; 
      nuint max = supportedLayers[supportedLayers.Count - 1]; //supportedLayers[supportedLayers.Length - 1]; 
      if (z > min && z < max) 
      { 
       foreach (nuint ZoomSupported in supportedLayers) 
       { 

        if (z < ZoomSupported) 
        { 
         toRet = Prevmin; 
         break; 
        } 
        else 
        { 
         Prevmin = ZoomSupported; 
        } 
       } 
      } 
      return toRet; 
     } 

Je veux juste savoir si elle est la bonne façon de limiter les niveaux de zoom

Répondre

0

Essayez dans votre MKMapViewDelegate:

func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) { 
    let maxLatitudeDelta: CLLocationDegrees = 1.0 //put in appropriate value for your zoom levels 
    let maxLongitudeDelta: CLLocationDegrees = 1.0 //put in appropriate value for your zoom levels 
    let center = mapView.centerCoordinate 
    let region = MKCoordinateRegionMake(center, MKCoordinateSpan(latitudeDelta: maxLatitudeDelta, longitudeDelta: maxLongitudeDelta)) 
    let adjustedRegion = mapView.regionThatFits(region) 
    mapView.setRegion(adjustedRegion, animated: true) 
} 
+0

comment trouver les valeurs z connexes pour le rapport 1: 1.250 à être honnête j'ai choisi 21 pour 1: 1,250 en supposant juste après avoir référé le document dans ma question –