Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protocol OnTrafficSpeedQueriedDelegate {
- func onQuerySuccess(proposedSpeed: Int)
- }
- class TrafficSpeedLayer: AGSFeatureLayer, AGSFeatureLayerQueryDelegate, AGSLayerDelegate {
- var featureLayer: AGSFeatureLayer!
- var point: AGSPoint!
- var trafficSpeedDelegate: OnTrafficSpeedQueriedDelegate!
- override init!(url: URL!, mode: AGSFeatureLayerMode, credential cred: AGSCredential!) {
- super.init(url: url, mode: mode, credential: cred)
- self.delegate = self
- self.queryDelegate = self
- }
- deinit {
- }
- required init!(json: [AnyHashable: Any]!) {
- fatalError("init(JSON:) has not been implemented")
- }
- func layerDidLoad(_ layer: AGSLayer!) {
- if layer != nil {
- let query = AGSQuery()
- query.whereClause = "1=1"
- query.outFields = ["*"]
- query.returnGeometry = true
- query.geometry = point
- query.spatialRelationship = .intersects
- query.outSpatialReference = Constants.WGS84_SPATIAL_REFERENCE
- self.queryDelegate = self
- self.queryFeatures(query)
- }
- }
- func featureLayer(_ featureLayer: AGSFeatureLayer!, operation op: Operation!, didQueryFeaturesWith featureSet: AGSFeatureSet!) {
- if featureSet.features.count == 0 {
- // No data for the queried road
- trafficSpeedDelegate.onQuerySuccess(proposedSpeed: 0)
- } else {
- for speed in featureSet.features {
- if let value = (speed as AnyObject).allAttributes()["DATA"] {
- if value is NSNull {
- // No value
- } else {
- trafficSpeedDelegate.onQuerySuccess(proposedSpeed: value as! Int)
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment