private void btnGetDistance_Click(object sender, EventArgs e) { InMemoryFeatureLayer usInMemoryLayer = (InMemoryFeatureLayer)winformsMap1.FindFeatureLayer("USInMemoryFeatureLayer"); InMemoryFeatureLayer chinaInMemoryLayer = (InMemoryFeatureLayer)winformsMap1.FindFeatureLayer("ChinaInMemoryFeatureLayer"); BaseShape usShape = usInMemoryLayer.InternalFeatures["US"].GetShape(); BaseShape chinaShape = chinaInMemoryLayer.InternalFeatures["CHINA"].GetShape(); double distance = usShape.GetDistanceTo(chinaShape, GeographyUnit.DecimalDegree, DistanceUnit.Kilometer); txtDistance.Text = string.Format(CultureInfo.InvariantCulture, "{0 :N4} Km", distance); }
private void btnGetDistance_Click(object sender, RoutedEventArgs e) { InMemoryFeatureLayer usInMemoryLayer = (InMemoryFeatureLayer)mapView.FindFeatureLayer("USInMemoryFeatureLayer"); InMemoryFeatureLayer chinaInMemoryLayer = (InMemoryFeatureLayer)mapView.FindFeatureLayer("ChinaInMemoryFeatureLayer"); ProjectionConverter project = new ProjectionConverter(3857, 4326); project.Open(); BaseShape usShape = project.ConvertToExternalProjection(usInMemoryLayer.InternalFeatures["US"].GetShape()); BaseShape chinaShape = project.ConvertToExternalProjection(chinaInMemoryLayer.InternalFeatures["CHINA"].GetShape()); project.Close(); double distance = usShape.GetDistanceTo(chinaShape, GeographyUnit.DecimalDegree, DistanceUnit.Kilometer); txtDistance.Text = string.Format(CultureInfo.InvariantCulture, "{0 :N4} Km", distance); }