andrew.smith.eam

How to add Infowindow for non FeatureLayer

Discussion created by andrew.smith.eam on Jan 12, 2012
Latest reply on Jan 12, 2012 by khutchins-esristaff
I  have created a simple Dynamic map layer  and  adding custom graphics by looping through Jason with custom infotemplate.

I want to show popup or infowindow with custom info when user clicks on a custom graphics. How to achieve this, I have tried several ways but not able to make it work.

My latest code looks like this and it doesn't work. I can see all my custom graphics but nothing is happening when I click on a graphics.

<script type="text/javascript">
      var djConfig = {
          parseOnLoad: true
      };
    </script>
<script type="text/javascript">
    dojo.require("esri.map");
    dojo.require("esri.layers.agstiled");
    dojo.require("esri.toolbars.draw");
    dojo.require("esri.SnappingManager");
    dojo.require("esri.toolbars.edit");
    dojo.require("dijit.form.Button");
    dojo.require("dijit.Menu");
    dojo.require("dijit.layout.BorderContainer");
    dojo.require("dijit.layout.ContentPane");
    dojo.require("esri.dijit.InfoWindowLite");

    dojo.addOnLoad(init);

    var map, tb;


    function init() {

       
        map = new esri.Map("map");
      
        dojo.connect(map, "onLoad", initToolbar);
       
        map.infoWindow.resize(200, 75);

        map.addLayer(new esri.layers.ArcGISDynamicMapServiceLayer("****/ArcGIS/rest/services/Continents/MapServer"));

        var infoTemplate = new esri.InfoTemplate();
        infoTemplate.setTitle("${NAME}");
        infoTemplate.setContent("<b>URL Is: </b><a href='/test/'>${URL}</a><br/>");

createDynamicGraphicsFromLocation(JasonObj);            

    }



    function createDynamicGraphicsFromLocation(JasonObj) {

        var geoValues = JasonObj

        dojo.forEach(geoValues.split('$'), function (pt, i) {
            var symbol;
            var geometryObj;

            if (pt.split('£')[0] == 'point') {
   
                symbol = tb.markerSymbol;
                geometryObj = new esri.geometry.Point(dojo.fromJson(pt.split('£')[1]));
                var graphic = new esri.Graphic(geometryObj, symbol);
                graphic.setAttributes({ "URL": "URLTest" });
                graphic.setAttributes({ "Name": "TestName" });

                var infoTemplate = new esri.InfoTemplate();
                infoTemplate.setTitle("${NAME}");
                infoTemplate.setContent("<b>URL Is: </b><a href='/test/'>${URL}</a><br/>");
                graphic.setInfoTemplate(infoTemplate);
                map.graphics.add(graphic);


            }
});
}

Outcomes