У меня проблема с зацикливанием kml и отображением его в ответе на Swagger / Postman.
Я пытался использовать sharpKML Nuget, чтобы преобразовать его в KML, но данные показывают только один, и данные не совпадают с моими ожиданиями.
Это мой код для создания цикла результата KML иизвлеките его в контроллер:
public static async Task<object> ExecuteTest(string query)
{
string connStrResult =
ConfigurationManager.ConnectionStrings["PostGresConnection"].ConnectionString;
NpgsqlConnection connection;
NpgsqlCommand command;
NpgsqlDataReader reader;
List<PointMaster> master = new List<PointMaster>();
connection = new NpgsqlConnection(connStrResult);
connection.Open();
command = new NpgsqlCommand(query, connection);
reader = command.ExecuteReader();
var kml = new Kml();
var placemarks = new Placemark();
var points = new Point();
while (await reader.ReadAsync())
{
PointMaster point = new PointMaster
{
point_id = (string)reader["point_id"],
point_type = (string)reader["point_type"],
sp_geometry = (PostgisPoint)(reader["sp_geometry"]),
msid = (int)reader["msid"],
};
points = new Point();
points.Coordinate = new Vector(point.sp_geometry.Y, point.sp_geometry.X);
placemarks = new Placemark();
placemarks.Name = point.point_type.ToString();
placemarks.Geometry = points;
kml.Feature = placemarks;
}
Serializer serializer = new Serializer();
serializer.Serialize(kml);
return serializer.Xml;
}
, и это мой контроллер для получения данных возврата из кода выше:
public class TestController : ApiController
{
[HttpGet]
[EnableCors("*", "*", "*")]
public async Task<IHttpActionResult> Get()
{
var result = await PostgreDataAccess.ExecuteTest(
string.Format("select * from vw_tbl_point_master limit 3"));
return Ok(result);
}
}
ожидаемый результат для этого кода, так как я зацикливаю данныеи вернуть его в ответ KML, или как лучше всего создать результат KML в веб-API
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Schema name="Download_Spasial_Kabel" id="Download_Spasial_Kabel">
<SimpleField name="msid" type="int"></SimpleField>
<SimpleField name="point_id" type="string"></SimpleField>
<SimpleField name="point_type" type="string"></SimpleField>
</Schema>
<Folder><name>Download_Spasial_Kabel</name>
<Placemark>
<Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
<ExtendedData><SchemaData schemaUrl="#Download_Spasial_Kabel">
<SimpleData name="msid">17191</SixmpleData>
<SimpleData name="point_id">CAB0001117191</SixmpleData>
<SimpleData name="point_type">A</SixmpleData>
</SchemaData></ExtendedData>
<LineString><coordinates>115.210146853828,-8.71815797576044 115.21115</coordinates></LineString>
</Placemark>
<Placemark>
</Placemark>
</Folder>
</Document>
</kml>