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); } }
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); } } } }