Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am having performance issue in my application. My feature layer has 220 polygons, but when I load the map with the feature layer, the browser hangs. On the advice of forum experts, I have now developed cached services, but I don't know what to do with it. As far I know, the cache service loads PNG file. So for each extent or zooming, we have to load different levels of map. Is this right?

Secondly, I want to add interactive feature to the map where I want the user to be able to select some countries on the map. So when they click on the map, I can do some javascript action. For this to happen, I have to load the feature layer and then add my onclick functionality. Can I achieve this with Cache service? Do i have to add Feature Layer to the basemap? Please explain.

Below is Rest service

Map Name: Layers

Legend

All Layers and Tables

Dynamic Legend

Dynamic All Layers

Layers:

    WorldCountries_50K (0)
    WorldCountries_100K (1)
    WorldCountries_250K (2)
    WorldCountries_500K (3)

Description:

Copyright Text:

Spatial Reference: 102100  (3857)


Single Fused Map Cache: true

Tile Info:

    Height: 256
    Width: 256
    DPI: 96
    Levels of Detail: 20
        Level ID: 0 [ Start Tile, End Tile ]
            Resolution: 156543.03392800014
            Scale: 5.91657527591555E8
        Level ID: 1 [ Start Tile, End Tile ]
            Resolution: 78271.51696399994
            Scale: 2.95828763795777E8
        Level ID: 2 [ Start Tile, End Tile ]
            Resolution: 39135.75848200009
            Scale: 1.47914381897889E8
        Level ID: 3 [ Start Tile, End Tile ]
            Resolution: 19567.87924099992
            Scale: 7.3957190948944E7
        Level ID: 4 [ Start Tile, End Tile ]
            Resolution: 9783.93962049996
            Scale: 3.6978595474472E7
        Level ID: 5 [ Start Tile, End Tile ]
            Resolution: 4891.96981024998
            Scale: 1.8489297737236E7
        Level ID: 6 [ Start Tile, End Tile ]
            Resolution: 2445.98490512499
            Scale: 9244648.868618
        Level ID: 7 [ Start Tile, End Tile ]
            Resolution: 1222.992452562495
            Scale: 4622324.434309
        Level ID: 8 [ Start Tile, End Tile ]
            Resolution: 611.4962262813797
            Scale: 2311162.217155
        Level ID: 9 [ Start Tile, End Tile ]
            Resolution: 305.74811314055756
            Scale: 1155581.108577
        Level ID: 10 [ Start Tile, End Tile ]
            Resolution: 152.87405657041106
            Scale: 577790.554289
        Level ID: 11 [ Start Tile, End Tile ]
            Resolution: 76.43702828507324
            Scale: 288895.277144
        Level ID: 12 [ Start Tile, End Tile ]
            Resolution: 38.21851414253662
            Scale: 144447.638572
        Level ID: 13 [ Start Tile, End Tile ]
            Resolution: 19.10925707126831
            Scale: 72223.819286
        Level ID: 14 [ Start Tile, End Tile ]
            Resolution: 9.554628535634155
            Scale: 36111.909643
        Level ID: 15 [ Start Tile, End Tile ]
            Resolution: 4.77731426794937
            Scale: 18055.954822
        Level ID: 16 [ Start Tile, End Tile ]
            Resolution: 2.388657133974685
            Scale: 9027.977411
        Level ID: 17 [ Start Tile, End Tile ]
            Resolution: 1.1943285668550503
            Scale: 4513.988705
        Level ID: 18 [ Start Tile, End Tile ]
            Resolution: 0.5971642835598172
            Scale: 2256.994353
        Level ID: 19 [ Start Tile, End Tile ]
            Resolution: 0.29858214164761665
            Scale: 1128.497176
    Format: PNG32
    Compression Quality: 0.0
    Origin: X: -2.0037508342787E7
    Y: 2.0037508342787E7
    Spatial Reference: 102100  (3857)

Initial Extent:

    XMin: -2.6548096424178407E7
    YMin: -1.4376721731989654E7
    XMax: 2.204125777392E7
    YMax: 2.400182614911706E7
    Spatial Reference: 102100  (3857)

Full Extent:

    XMin: -2.2041257773920003E7
    YMin: -3.578420532071707E7
    XMax: 2.204125777392E7
    YMax: 2.400182614911706E7
    Spatial Reference: 102100  (3857)

Units: esriMeters

Supported Image Format Types: PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP

Document Info:

    Title:
    Author:
    Comments:
    Subject:
    Category:
    Keywords:
    AntialiasingMode: Fast
    TextAntialiasingMode: Force

Supports Dynamic Layers: true

MaxRecordCount: 1000

MaxImageHeight: 2048

MaxImageWidth: 2048

Supported Query Formats: JSON, AMF

Min Scale: 5.91657527591555E8

Max Scale: 1.8489297737236E7

HTML code

Display Different Map Services Based on Zoom Level

<link rel="stylesheet" href="http://js.arcgis.com/3.6/js/dojo/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://js.arcgis.com/3.6/js/esri/css/esri.css">
<style>
  html, body, #mapDiv {
    padding: 0;
    margin: 0;
    height: 100%;
  }

<script src="http://js.arcgis.com/3.6/"></script>
<script>
  var map;

  // The satellite layer will be visible at zoom levels 0 - 11.  
  // The streets layer will be visible at zoom levels 11 - 15.
  // 
  // Both are visible at zoom level 11.

  require([
    "esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "esri/layers/FeatureLayer","dojo/dom",

    "dojo/domReady!"
  ], function(
    Map, ArcGISTiledMapServiceLayer, dom
  ) {
    var customLods = [];
    var loadCount = 0;

    // satellite imagery from ArcGIS Online, use levels 0 - 11
    var satellite = new ArcGISTiledMapServiceLayer("http://10.32.9.106:6080/arcgis/rest/services/KX_Mapping/World_Countries_WMS_Cached_v2/MapServer", {
      displayLevels: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
    });
    satellite.on("load", addLods);
    satellite.on("click","alert('hi')");



    // street Map service from ArcGIS Online, use levels 11 - 15
   /* var streets = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
      displayLevels: [11, 12, 13, 14, 15 ],
      opacity : 0.75
    });
    streets.on("load", addLods);*/

    // popuplate an array with zoom levels
    function addLods(evt) {
      customLods = customLods.concat(evt.layer.tileInfo.lods);
      loadCount++;
      if (loadCount === 1) {
        initMap();
      }
    }

    // create the map and use the custom zoom levels 
    function initMap() {
      console.log(" init map");
      map = new Map("mapDiv", {

        lods : customLods
      });

      map.addLayer(satellite);


      try{
var info_content = "<table><tr><td><b>COUNTRY :</b></td><td style='text-align:right'>${COUNTRY}</td></tr></table>";
 console.log(" adding neghbordhoods");

var infoTemplate1 = new esri.InfoTemplate("fdsfd", "Sdfd");
var     featureLayer1 = new esri.layers.FeatureLayer("http://10.32.9.106:6080/arcgis/rest/services/KX_Mapping/World_Countries_WMS_Cached_v2/MapServer/0",{

    infoTemplate: infoTemplate1,

    id: "sd_neighborhoods"
});
dojo.connect(featureLayer1, "onLoad", function(){
         console.log("feture layer added ");
        //myMap.addLayer(featureLayer1);
        require(["dojo/on", "esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol", "dojo/_base/Color", "esri/graphic"], function(on, SimpleFillSymbol, SimpleLineSymbol, Color, Graphic) {
                on(featureLayer1, "click", function(evt) {

                    console.log(" added ");
                    // clears current selection

                    map.graphics.clear();
                    // create new graphic with selected graphic's geometry
                    var graphic = new Graphic(evt.graphic.geometry);

                    // create a new symbol for the graphic
                    var sfs = new SimpleFillSymbol(SimpleFillSymbol.STYLE_FORWARD_DIAGONAL, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]), 2), new Color([255, 255, 0, 0.5]));

                    // add symbol to the graphic
                    graphic.setSymbol(sfs);     

                    // map the graphic to the map   
                    map.graphics.add(graphic);
                });
            });
});




        }catch(e){
          console.log("error "+e);
        }


     // map.addLayer(streets);
    }

    //Report which layer is being shown
    function changeScale(evt) {
      dom.byId("scale").innerHTML = "Level: <i>" + evt.lod.level;
      if (evt.lod.level < 11) {
        dom.byId("visibleLayer").innerHTML = "Layer: <i>Imagery</i>";
      } else if (evt.lod.level == 11) {
        // both layers are loaded
        dom.byId("visibleLayer").innerHTML = "<i>Both layers currently visible</i>";
      } else {
        dom.byId("visibleLayer").innerHTML = "Layer: <i>Streets</i>";
      }
    }
  });
</script>

share|improve this question
    
I'm not buying that 220 polygons freeze the browser. I suspect its something else in your code that's dorking things up. If you post a url to the site, I'll take a look at it. –  CLJ Sep 13 '13 at 2:52
    
it was 220 polygons with lot of detailed vertices, i took sample arcgis code and tested it was freezing any how we resolved the issue by using Selection mode and generalized map –  Anil Sep 13 '13 at 5:26
add comment

1 Answer 1

1) You must cache base map (first service). You can cache all data or "cache on demand". Also you can set the number of layers in your map and scales for each layer.

2) You must create feature class in sde database. And publish it. (it will be the second service)

That's I do. But some people use only one service.

share|improve this answer
    
Thanks for suggestion , as you can see in REst service i have 4 layers which are Feature Layers.Now when i load the base map how do i give the interactive feature for it.I have posted code in my Questionsection .Please let me know how can i add interactivity capabilites. –  Anil Sep 5 '13 at 14:21
    
I do not know exactly (i am desktop programmer, not web) But there is clusterization in openlayers. –  novicegis Sep 6 '13 at 11:14
    
Thanks , We are supposed to Use ESRI product.I am facing issue of IE hanging –  Anil Sep 6 '13 at 12:24
    
I am able to add feature layer to Cached services now map load in IE but when i click on any country it hangs –  Anil Sep 6 '13 at 13:59
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.