예제 #1
0
    private void LoadLinearFeatures()
    {
        cdbDatabase = fpsCDB.GetCDBDatabase();
#if UNITY_ANDROID
        string filepath = UnityEngine.Application.persistentDataPath;
#else
        string filepath = cdbDatabase.Path;
#endif
        cdbDatabase = fpsCDB.GetCDBDatabase();
        string databaseName = cdbDatabase.name;
        databaseName = databaseName.Replace('.', '_');

        var feats = Cognitics.CDB.Shapefile.ReadFeatures(filepath + "/" + databaseName + "Line.shp");
        if (linePoints.Count != 0)
        {
            linePoints.Clear();
        }
        foreach (Feature f in feats)
        {
            GeoAPI.Geometries.Coordinate[] coords = f.Geometry.Coordinates;
            foreach (GeoAPI.Geometries.Coordinate c in coords)
            {
                var geoCoords = new Cognitics.CoordinateSystems.GeographicCoordinates();
                geoCoords.Longitude = c.X;
                geoCoords.Latitude  = c.Y;
                var cartCoords = geoCoords.TransformedWith(cdbDatabase.Projection);
                linePoints.Add(new Vector3((float)cartCoords.X, (float)c.Z, (float)cartCoords.Y));
            }
            LineObject lo = lineObject.GetComponent <LineObject>();
            lo.title.GetComponent <TMP_InputField>().text       = f.Attributes["Title"].ToString();
            lo.description.GetComponent <TMP_InputField>().text = f.Attributes["Description"].ToString();
            lo.SetLineText();

            lineScript.DrawLine(ref lineObject);
        }
    }