2 Replies Latest reply: Aug 13, 2013 1:42 PM by Wayne Blumstengel RSS

    How To Clear Mapviewer Tile Cache

    Wayne Blumstengel

      I am running a standalone version of Mapviewer using Weblogic Server.

       

      Weblogic and Mapviewer are running on a linux server with CentOS 5.8 64bit.

      - MapViewer Version: Ver11_1_1_7_1_B130516

      - Weblogic Server 10.3.6

       

      I am using Mapbuilder installed on a Win7 64bit client.

      - Mapbuilder Build: Ver11_1_1_7_1_B130516

       

      My datasource is an Oracle 11.2.0.3 database running on a linux server with CentOS 5.8 64bit.

       

      I am using the new HTML5 JavaScript mapping API to render my map.  I am using any one of the following browsers:

       

      IE10 (v10.0.9200.16635)

      Firefox (v23.0)

      Chrome (v28.0.1500.95 m

       

      I have created the following Mapbuilder objects:

       

      Geometry Theme: SRA_SUITE304_F1_ROOM

      - for the label styling rules, I have set the Label Function = 1, so that labels will be displayed for the objects

       

      Base Map: SRA_ALL

       

      <?xml version="1.0" standalone="yes"?>

      <map_definition>

            <theme name="SRA_SUITE304_F1_ROOM"/>

        </map_definition>

       

      Tile Layer: SRA_ALL

       

      <map_tile_layer name="SRA_ALL" image_format="PNG" http_header_expires="168.0" concurrent_fetching_threads="3">

           <internal_map_source data_source="ICLOGIT1" base_map="SRA_ALL" bgcolor="#ccccff"/>

           <coordinate_system srid="4326" minX="-74.54" minY="39.407" maxX="-74.53" maxY="39.41"/>

           <tile_image width="256" height="256"/>

           <zoom_levels levels="10" min_scale="100.0" max_scale="1600.0" min_tile_width="6.097560975612876E-5" min_tile_height="9.090909090913742E-4">

                <zoom_level level="0" name="level0" description="" scale="1600.0" tile_width="9.090909090913742E-4" tile_height="9.090909090913742E-4"/>

                <zoom_level level="1" name="level1" description="" scale="1175.0" tile_width="7.142857142860797E-4" tile_height="7.142857142860797E-4"/>

                <zoom_level level="2" name="level2" description="" scale="864.0" tile_width="5.263157894739535E-4" tile_height="5.263157894739535E-4"/>

                <zoom_level level="3" name="level3" description="" scale="634.0" tile_width="3.846153846155814E-4" tile_height="3.846153846155814E-4"/>

                <zoom_level level="4" name="level4" description="" scale="466.0" tile_width="2.7777777777791986E-4" tile_height="2.7777777777791986E-4"/>

                <zoom_level level="5" name="level5" description="" scale="342.0" tile_width="2.0833333333343992E-4" tile_height="2.0833333333343992E-4"/>

                <zoom_level level="6" name="level6" description="" scale="251.0" tile_width="1.5151515151522904E-4" tile_height="1.5151515151522904E-4"/>

                <zoom_level level="7" name="level7" description="" scale="185.0" tile_width="1.1235955056185523E-4" tile_height="1.1235955056185523E-4"/>

                <zoom_level level="8" name="level8" description="" scale="136.0" tile_width="8.264462809921583E-5" tile_height="8.264462809921583E-5"/>

                <zoom_level level="9" name="level9" description="" scale="100.0" tile_width="6.097560975612876E-5" tile_height="6.097560975612876E-5"/>

         </zoom_levels>

      </map_tile_layer>

       

      I am using the following HTML to display the map using the Tile Layer SRA_ALL:

       

      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

       

      <html>

      <head>

      <title>SRA2 - Map 01 - 10 Zoom Levels</title>

      <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>

      <script type='text/javascript' src='http://xxxx.xxxx.com:7002/mapviewer/jslib/v2/oraclemapsv2.js'></script>

      <style type= 'text/css '>body {cursor:default;}</style>

       

      <script language="JavaScript" type="text/javascript">

       

      var baseURL="http://xxxx.xxxx.com:7002/mapviewer";  // location of mapviewer

       

          function showMap()

          {

              var map = new OM.Map(

              document.getElementById('map'),

              {

                  mapviewerURL:baseURL

              }) ;

       

              var tileLayer2 = new OM.layer.TileLayer(

              "SRA_ALL",

              {

                  dataSource:"xxxx",

                  tileLayer:"SRA_ALL"

              });   

              map.addLayer(tileLayer2) ;

       

              map.addScaleBar() ;

              map.addNavigationPanelBar() ;

       

              map.setMapCenter(new OM.geometry.Point(-74.537446,39.409008,4326) );

              map.setMapZoomLevel(3) ;

              map.init() ;

          }

      </script>

      </head>

       

      <body onload="javascript:showMap()">

          <DIV id=map style="width:99%;height:99%"></DIV>

      </body>

      </html>

       

      This produces a correctly rendered map in my browsers, which displays the labels I expect.

       

      Next, I changed the Labeling Function on my Geometry Theme: SRA_SUITE304_F1_ROOM, setting it to -1, so that object labels would not be displayed.

       

      In Mapbuilder, I can preview the geometry theme, and it shows that no labels are displayed.

      Still in Mapbuilder, I can preview the base map that the geometry theme is assigned to, and the basemap also shows that no labels are displayed for that theme.

      I saved all my changes in Mapbuilder.

       

      However, when I view my map (using the same HTML code) in the browser, the map still shows the labels.

       

      I have tried all of the following:

      1) purging the geometry cache for the affected map datasource using the MapViewer Administration Console

      2) purging the browser cache

      3) restarting the mapviewer server

      4) restarting the entire supporting weblogic server

       

      None of these actions cause the map viewed in my browser to be updated to show the map without labels.

       

      Note: If I create a new Tile Layer using the same base map, my changes are visible in the browser map.

       

      What am I missing here?

      What cache do I need to clear so that my map is displayed correctly in my browser after I make changes to the underlying Mapbuilder objects?

       

      Thanks in advance for your help.

        • 1. Re: How To Clear Mapviewer Tile Cache
          Fa

          You should also delete tile images stored on your hard disk. The location of tiles is defined in your tile definition xml.

          The default value is : "C:\temp"

          Check that folder to see whether there are any folder related to you tile layer.

          Regards,

          F

          • 2. Re: How To Clear Mapviewer Tile Cache
            Wayne Blumstengel

            Thanks.  That was the last key to the puzzle.

             

            Here are the steps I now follow to ensure that changes made to underlying MapBuilder objects are visible in the browser.

             

            Perform the following steps:

             

            1) Modify the object (style, theme, base map, tile layer) in MapBuilder, and save all changes.

            2) Using MapViewer Administration Console, Purge Cached Metadata for each affected datasource.

            3) On the MapViewer server, clear the Map Cache directory.  The location of the Map Cache directory is specified in the mapViewerConfig.xml file under the section "Map Cache Server Setting".

             

            e.g.

             

            cd <map cache dir>

            rm -rf *

             

            4) Clear the browser cache and temp files for the browser you are using (e.g. IE, Firefox, Chrome).  If you think you are not clearing the cache completely, then use the appropriate "private browsing" feature of the browser to view the map.  You should then be able to see the changes made to the map in the browser.