Hello James,
We investigated this issue and found out currently there is no setting, which allows the map coordinates to behave correctly when crossing the International Date Line. Technically this requires the axis ranges to be something like
175->180->-180->-175 which is not possible. Instead, the axis values are automatically switched so that minimum is always smaller than maximum. This feature is something we could fix/change in the future.
There is a workaround that could help here: using custom axis ticks. For example:
Code: Select all
private int east = -175, west = 175;
_chart.View3D.XAxisPrimary3D.SetRange(west, east); // This will be switched so that minimum is -175 and maximum 175
_chart.View3D.XAxisPrimary3D.ValueType = AxisValueType.MapCoordsDegMinSecNESW;
_chart.View3D.XAxisPrimary3D.Title.Text = "Longitude";
_chart.View3D.XAxisPrimary3D.AutoFormatLabels = false; // Custom ticks might not work correctly with AutoFormatLabels enabled
_chart.View3D.XAxisPrimary3D.CustomTicksEnabled = true;
_chart.View3D.XAxisPrimary3D.CustomTicks.Add(new CustomAxisTick(_chart.View3D.XAxisPrimary3D, -175, "175°0'0\"E"));
_chart.View3D.XAxisPrimary3D.CustomTicks.Add(new CustomAxisTick(_chart.View3D.XAxisPrimary3D, -70, "178°0'0\"E"));
_chart.View3D.XAxisPrimary3D.CustomTicks.Add(new CustomAxisTick(_chart.View3D.XAxisPrimary3D, 0, "IDL"));
_chart.View3D.XAxisPrimary3D.CustomTicks.Add(new CustomAxisTick(_chart.View3D.XAxisPrimary3D, 70, "178°0'0\"W"));
_chart.View3D.XAxisPrimary3D.CustomTicks.Add(new CustomAxisTick(_chart.View3D.XAxisPrimary3D, 175, "175°0'0\"W"));
_chart.View3D.XAxisPrimary3D.InvalidateCustomTicks();
You could for instance check if Westmost -value is larger than Eastmost. If this is true, enable custom ticks, otherwise keep them disabled. You might also need to solve how to convert axis values to correct longitude values.
Hope this is helpful.