コード例 #1
0
        private void ConvertPOIData(dynamic poi)
        {
            if (this.listMapData.listBuildingData == null)
            {
                this.listMapData.listBuildingData = new List <BuildingData>();
            }

            for (int i = 0; i < poi.features.Count; i++)
            {
                var tempData = poi.features[i];

                BuildingData buildingData = new BuildingData();
                buildingData.listCoordinate = new List <Coordinate>();

                var coordinate = tempData.geometry.coordinates;
                //float[] mercator = GeoConverter.GeoCoorToMercatorProjection((float)coordinate[1], (float)coordinate[0]);

                /*
                 * float tempX = mercator[0] - this.centerMercatorX;
                 * float tempY = mercator[1] - this.centerMercatorY;
                 */

                float tempX = (float)Convert.ToDouble(coordinate[0]) - this.centerMercatorX;
                float tempY = (float)Convert.ToDouble(coordinate[1]) - this.centerMercatorY;

                //coordinate[1] = tempX;
                //coordinate[0] = tempY;
                Coordinate coor = new Coordinate();
                coor.latitude  = tempX;
                coor.longitude = tempY;
                buildingData.listCoordinate.Add(coor);

                buildingData.buildingName = tempData.properties.name;
                this.listMapData.listBuildingData.Add(buildingData);
            }
        }
コード例 #2
0
        private void ConvertBuildingData(dynamic building)
        {
            this.listMapData.listBuildingData.Clear();

            for (int i = 0; i < building.features.Count; i++)
            {
                var tempData = building.features[i];
                //Debug.WriteLine(tempData.properties.code);
                if (tempData.properties.building != "")
                {
                    if (tempData.geometry.type == "Polygon")
                    {
                        BuildingData buildingData = new BuildingData();
                        buildingData.listCoordinate = new List <Coordinate>();

                        for (int j = 0; j < tempData.geometry.coordinates[0].Count; j++)
                        {
                            var coordinate = tempData.geometry.coordinates[0][j];


                            //float[] mercator = GeoConverter.GeoCoorToMercatorProjection((float)Convert.ToDouble(coordinate[1]), (float)Convert.ToDouble(coordinate[0]));

                            /*
                             * float tempX = mercator[0] - this.centerMercatorX;
                             * float tempY = mercator[1] - this.centerMercatorY;
                             */

                            float tempX = (float)Convert.ToDouble(coordinate[0]) - this.centerMercatorX;
                            float tempY = (float)Convert.ToDouble(coordinate[1]) - this.centerMercatorY;

                            //coordinate[1] = tempX;
                            //coordinate[0] = tempY;
                            Coordinate coor = new Coordinate();
                            coor.latitude  = tempX;
                            coor.longitude = tempY;
                            buildingData.listCoordinate.Add(coor);
                        }

                        buildingData.buildingName = tempData.properties.name;

                        buildingData.buildingCode = tempData.properties.code;
                        this.listMapData.listBuildingData.Add(buildingData);

                        //add centeroid of polygon
                        BuildingData centeroidData = new BuildingData();
                        centeroidData.listCoordinate = new List <Coordinate>();

                        float[]    centeroid     = this.FindCenteroid(buildingData.listCoordinate);
                        Coordinate coorCenteroid = new Coordinate();
                        coorCenteroid.latitude  = centeroid[0];
                        coorCenteroid.longitude = centeroid[1];
                        centeroidData.listCoordinate.Add(coorCenteroid);
                        centeroidData.buildingName = tempData.properties.name;
                        this.listMapData.listBuildingData.Add(centeroidData);
                    }

                    if (tempData.geometry.type == "Point")
                    {
                        BuildingData buildingData = new BuildingData();
                        buildingData.listCoordinate = new List <Coordinate>();

                        var     coordinate = tempData.geometry.coordinates;
                        float[] mercator   = GeoConverter.GeoCoorToMercatorProjection((float)Convert.ToDouble(coordinate[1]), (float)Convert.ToDouble(coordinate[0]));
                        float   tempX      = mercator[0] - this.centerMercatorX;
                        float   tempY      = mercator[1] - this.centerMercatorY;
                        //coordinate[1] = tempX;
                        //coordinate[0] = tempY;
                        Coordinate coor = new Coordinate();
                        coor.latitude  = tempX;
                        coor.longitude = tempY;
                        buildingData.listCoordinate.Add(coor);

                        buildingData.buildingName = tempData.properties.name;
                        this.listMapData.listBuildingData.Add(buildingData);
                    }
                }
            }
        }