public override GOFeature EditFeatureData(GOFeature feature) { feature.name = (string)feature.properties ["name"]; if (feature.goFeatureType == GOFeatureType.Point) { return(feature); } if (feature.GetType() == typeof(GORoadFeature)) { GORoadFeature grf = (GORoadFeature)feature; grf.kind = GOEnumUtils.MapzenToKind((string)grf.properties ["kind"]); if (grf.properties.Contains("kind_detail")) //Mapzen { grf.detail = (string)grf.properties ["kind_detail"]; } grf.isBridge = grf.properties.Contains("is_bridge") && Convert.ToBoolean(grf.properties ["is_bridge"]); grf.isTunnel = grf.properties.Contains("is_tunnel") && Convert.ToBoolean(grf.properties ["is_tunnel"]); grf.isLink = grf.properties.Contains("is_link") && Convert.ToBoolean(grf.properties ["is_link"]); } else { feature.kind = GOEnumUtils.MapzenToKind((string)feature.properties ["kind"]); if (feature.properties.Contains("kind_detail")) //Mapzen { feature.kind = GOEnumUtils.MapzenToKind((string)feature.properties ["kind_detail"]); } } // goFeature.name = Convert.ToString( properties ["id"]); feature.setRenderingOptions(); Int64 sort = 0; if (feature.properties.Contains("sort_rank")) { sort = Convert.ToInt64(feature.properties ["sort_rank"]); } else if (feature.properties.Contains("sort_key")) { sort = Convert.ToInt64(feature.properties ["sort_key"]); } feature.y = sort / 1000.0f; feature.sort = sort; feature.height = feature.renderingOptions.polygonHeight; if (feature.layer.useRealHeight && feature.properties.Contains("height")) { double h = Convert.ToDouble(feature.properties["height"]); feature.height = (float)h; } if (feature.layer.useRealHeight && feature.properties.Contains("min_height")) { double hm = Convert.ToDouble(feature.properties["min_height"]); feature.y = (float)hm; if (feature.height >= hm) { feature.y = (float)hm; feature.height = (float)feature.height - (float)hm; } } return(feature); }