Как исправить 'Дополнительный аргумент' zoom 'в вызове' для MapBox sceneKit (AR scene)? - PullRequest
0 голосов
/ 09 февраля 2019

В сообщении об ошибке указывается, что для него не требуется аргумент «zoom», но вся онлайн-документация указывает на иное.

Когда я удалил аргумент «zoom», он снова выдает ошибку и говорит, что ему нужно два аргумента.,Я пропускаю другой аргумент, который мне нужно добавить вместо этого?

Кроме того, я попытался использовать аргумент 'множитель', который кто-то предложил использовать, который тоже не сработал.

func createTerrain() {
    terrainNode = TerrainNode(minLat: minLat, maxLat: maxLat,
                              minLon: minLon, maxLon: maxLon)

    if let terrainNode = terrainNode {
        terrainNode.scale = terrainNodeScale // Scale down map
        terrainNode.position = SCNVector3Make(0, -0.15, 0) // Place map slightly below clouds
        terrainNode.geometry?.materials = defaultMaterials() // Add default materials
        scene.rootNode.addChildNode(terrainNode)

        terrainNode.fetchTerrainHeights(minWallHeight: 100.0, enableDynamicShadows: true, progress: { progress, total in
        }, completion: {
            NSLog("Terrain load complete")
        })

        terrainNode.fetchTerrainTexture("mapbox/satellite-v9", zoom: 14, progress: { progress, total in
        }, completion: { image in
            NSLog("Texture load complete")
            terrainNode.geometry?.materials[4].diffuse.contents = image
        })
    }
}

Это часть кода, которая на текстуре ландшафта и спутниковом изображении к узлу местности.Я предполагаю, что мне нужно знать уровень «зума», но он хочет, чтобы он был удален.

Любая помощь будет принята с благодарностью, так как я сейчас вырываю свои волосы.Большое спасибо всем, кто заходит на этот пост и может предложить любые предложения.

Screenshot of error

1 Ответ

0 голосов
/ 09 февраля 2019

Метод fetchTextureTerrain, похоже, был изменен с вашего:

terrainNode.fetchTerrainTexture("mapbox/satellite-v9", zoom: 14, progress: { progress, total in
        }, completion: { image in
            NSLog("Texture load complete")
            terrainNode.geometry?.materials[4].diffuse.contents = image
        })

На что-то вроде:

terrainNode.fetchTerrainTexture("mapbox/satellite-v9", progress: { progress, total in
      // Some code here.

      }, completion: { image, fetchError in
            if let fetchError = fetchError {
                NSLog("Texture load failed: \(fetchError.localizedDescription)")
            }
            if image != nil {
                NSLog("Texture load complete")
                terrainNode.geometry?.materials[4].diffuse.contents = image
            }
      })

Обратите внимание на дополнительный термин fetchError в блоке завершения (и удаление термина zoom, который вы заметили ранее).Несвязанный, но для чисто быстрой реализации вы должны использовать операторы print и избегать NSLog s.

...