Я учусь создавать поток GeoJson
. Я знаю, как преобразовать datatable
в строку JSON и затем сериализовать в формат JSON. Проблема в том, что я не знаю, как включить этот поток JSON в объект GeoJson.
Следующий код генерирует объект geojson:
public geoJson Leaflets_GeoJson()
{
var CorOrd = new LocalGeometry();
CorOrd.coordinates = new List<double>(); // <=====
CorOrd.coordinates.Add(34.2305);
CorOrd.coordinates.Add(-86.2644);
CorOrd.type = "Point";
var myProps = new Properties();
myProps.name = "John";
myProps.id = "JN123";
myProps.address = "Howard Street";
var geoJson = new geoJson
{
type = "FeatureCollection",
features = new List<LocalFeature>
{
new LocalFeature { type = "Feature", geometry = CorOrd, properties=myProps}
}
};
return geoJson;
}
, который возвращает следующее:
{"features":[{"geometry":{"coordinates":[18.2305,-66.2644],"type":"Point"},"properties":{"address":"Howard Street","id":"JN123","name":"John"},"type":"Feature"}],"type":"FeatureCollection"}
Это метод, который принимает таблицу данных и возвращает поток JSON:
public System.IO.Stream()
{
string sqlQuery = string.Format("usp_GetNames");
string connString = System.Configuration.ConfigurationManager.ConnectionStrings["connstring"].ToString();
SqlDatabase sqlDatabase = new SqlDatabase(connString);
DataSet result = sqlDatabase.ExecuteDataSet(CommandType.Text, sqlQuery);
string callback = JsonConvert.SerializeObject(result.Tables[0]);
byte[] resultBytes = Encoding.UTF8.GetBytes(callback);
return new System.IO.MemoryStream(resultBytes);
}
и возвращает это JSON
:
[
{"name":"Joe","address":"Main Street","id":"Joe121", "Lon": 40.730610, "Lat": -73.935242},
{"name":"Mary","address":"220 Avenue","id":"Mary625", "Lon": 42.730610, "Lat": -72.935242}
]
Мой вопрос: КакМогу ли я объединить эти два потока, чтобы он возвращал объект GeoJson, который выглядит следующим образом?
{ "type": "FeatureCollection", "features": [ {"type": "Feature", "properties":
{"name":"Joe","address":"Main Street","id":"Joe121"},"geometry": {"type": "Point","coordinates": [-73.1232, 40.7306]}},
{"type": "Feature", "properties": {"name":"Mary","address":"220 Avenue","id":"Mary625"},"geometry": {"type": "Point","coordinates": [-71.1232, 41.7306]}}] }