Пример #1
0
 public void InitElevs(string scenename, ElevProvider elevprov, MapExtentTypeE mapextent, EarthHightModelE model, int nrow, int ncol, LatLngBox llb)
 {
     Debug.Log("InitElevs mapextent:" + mapextent + " nrow:" + nrow + " ncol:" + ncol);
     this.elevprov  = elevprov;
     this.scenename = scenename;
     this.mapprov   = MapProvider.Bing;// the only one with elevations
     this.nrow      = nrow;
     this.ncol      = ncol;
     this.llb       = llb;
     this.model     = model;
     this.mapextent = mapextent;
     heights        = new List <float>();
 }
Пример #2
0
 public void InitializeGrid(string scenename, LatLngBox llbox, string mapcoordname = "", MapProvider mapprov = MapProvider.Bing, ElevProvider elevprov = ElevProvider.Bing)
 {
     this.scenename     = scenename;
     this.mapcoordname  = mapcoordname;
     this.mapprov       = mapprov;
     this.elevprov      = elevprov;
     this.levelOfDetail = llbox.lod;
     this.llmap         = this.gameObject.AddComponent <LatLongMap>();
     this.qmapElev      = gameObject.AddComponent <QmapElevation>();
     this.qkm           = new QkMan(this, this.mapcoordname, mapprov, llbox);
     this.qtt           = this.gameObject.AddComponent <Qtrilines>();
     qtt.Init(this);
 }
Пример #3
0
    public async Task <(QmapMesh, int, int)> MakeMeshFromLlbox(string scenename, LatLngBox llbox, int tpqk = 4, float hmult = 1, string mapcoordname = "", MapExtentTypeE mapextent = MapExtentTypeE.SnapToTiles, MapProvider mapprov = MapProvider.Bing, ElevProvider elevprov = ElevProvider.Bing, bool execute = true, bool forceload = false,
                                                               bool limitQuadkeys = true, QmapMesh.sythTexMethod synthTex   = QmapMesh.sythTexMethod.Quadkeys, HeightTypeE heitType = HeightTypeE.FetchedAndZeroed)
    {
        var wpstays = false;

        Debug.Log($"QmapMan.MakeMeshFromLlbox scenename:{scenename} wpstays:{wpstays}");
        this.mapprov      = mapprov;
        this.elevprov     = elevprov;
        this.scenename    = scenename;
        this.mapcoordname = mapcoordname;
        if (rgo != null)
        {
            Destroy(rgo);
            rgo = null;
        }
        rgo = new GameObject("rgo");
        rgo.transform.SetParent(this.transform, worldPositionStays: wpstays);
        qkgo = new GameObject("QmapMesh");
        qkgo.transform.SetParent(rgo.transform, worldPositionStays: wpstays);
        qkgo.transform.position = Vector3.zero;

        var qmmcomp = qkgo.AddComponent <QmapMesh>();

        qmmcomp.descriptor = $"{scenename} {llbox.lod} {mapprov} {mapextent}";
        qmmcomp.InitializeGrid(scenename, llbox, mapcoordname: mapcoordname);
        qmmcomp.secsPerQkTile    = tpqk;
        qmmcomp.useElevationData = useElevationDataStart;
        qmmcomp.mapExtent        = mapextent;
        qmmcomp.hmult            = hmult;
        qmmcomp.synthTex         = synthTex;
        qmmcomp.limitQuadkeys    = limitQuadkeys;
        qmmcomp.heightType       = heitType;

        (var nbm, var nel) = await qmmcomp.GenerateGrid(execute, forceload, limitQuadkeys : limitQuadkeys);

        return(qmmcomp, nbm, nel);
    }
Пример #4
0
    public async Task <(QmapMesh, int, int)> MakeMesh(string scenename, int lod, LatLng ll1, LatLng ll2, string mapcoordname = "", int tpqk = 4, float hmult = 1, MapProvider mapprov = MapProvider.Bing, ElevProvider elevprov = ElevProvider.Bing)
    {
        var llbox = new LatLngBox(ll1, ll2, scenename, lod: lod);

        return(await MakeMeshFromLlbox(scenename, llbox, mapcoordname : mapcoordname, tpqk : tpqk, hmult : hmult, mapprov : mapprov, elevprov : elevprov));
    }