laptop and a wrench

Bug

The basemap layer does not display the correct extent and displays wrong values for latitude and longitude when turning off the ‘IBaseMapLayer::InvalidateCache’ method.

Last Published: August 25, 2014 ArcGIS Engine
Bug ID Number NIM075542
SubmittedNovember 17, 2011
Last ModifiedJune 5, 2024
Applies toArcGIS Engine
Version found10.0
Program languageC#
Operating SystemWindows OS
Operating System Version7
StatusWill Not Be Addressed

Additional Information

NotifyMapPropertiesChanged after the maps spatial reference has been updated.

Workaround

Need to call NotifyMapPropertiesChanged after the maps spatial reference is updated. Below you see a modified version of the customers CenterMapAt procedure with this call added. Friend Sub CenterMapAt(ByVal pCenter As IPoint) Dim geo As CGeoGraphicsCjmtk = CGeoGraphicsCjmtk.Instance If m_MapControl IsNot Nothing Then 'Test to see if we are getting near the edge of the map If ResetCentralMeridian(m_ProjectedCoordinateSystem.CentralMeridian(True), New CPosition(pCenter.Y, pCenter.X)) Then 'If so, move the central meridian to the center point entered and re-project the map m_MapControl.SpatialReference = UpdateMapCentralMeridian(pCenter.X) Refresh(MapLayer.All) End If pCenter = geo.ConvertGeographicPointToProjectedPoint(pCenter.X, pCenter.Y) m_MapControl.CenterAt(pCenter) Dim baseLayer As IBasemapLayer = TryCast(m_MapControl.Layer(m_MapControl.LayerCount - 1), IBasemapLayer) If baseLayer IsNot Nothing Then If m_UseInvalidateCache Then baseLayer.InvalidateCache() Else baseLayer.NotifyMapPropertiesChanged(m_MapControl.Map, True) End If End If End If End Sub

Steps to Reproduce

Bug ID: NIM075542

Software:

  • ArcGIS Engine

Get notified when the status of a bug changes

Download the Esri Support App

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options