public static ServiceArea FromJson(JsonObject json)
{
if (json == null)
return null;
ServiceArea result = new ServiceArea();
if (json["edgeFeatures"] != null)
{
result.EdgeFeatures = new FeatureCollection();
for (int i = 0; i < json["edgeFeatures"].Count; i++)
{
result.EdgeFeatures.Add(ServerFeature.FromJson((JsonObject)json["edgeFeatures"][i]).ToFeature());
}
}
if (json["edgeIDs"] != null)
{
result.EdgeIDs = new List<int>();
for (int i = 0; i < json["edgeIDs"].Count; i++)
{
result.EdgeIDs.Add((int)json["edgeIDs"][i]);
}
}
if (json["nodeFeatures"] != null)
{
result.NodeFeatures = new FeatureCollection();
for (int i = 0; i < json["nodeFeatures"].Count; i++)
{
result.NodeFeatures.Add(ServerFeature.FromJson((JsonObject)json["nodeFeatures"][i]).ToFeature());
}
}
if (json["nodeIDs"] != null)
{
result.NodeIDs = new List<int>();
for (int i = 0; i < json["nodeIDs"].Count; i++)
{
result.NodeIDs.Add((int)json["nodeIDs"][i]);
}
}
if (json["routes"] != null)
{
result.Routes = new List<Route>();
for (int i = 0; i < json["routes"].Count; i++)
{
result.Routes.Add(ServerGeometry.FromJson((JsonObject)json["routes"][i]).ToRoute());
}
}
result.ServiceRegion = ServerGeometry.FromJson((JsonObject)json["serviceRegion"]).ToGeometry();
return result;
}