<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/> <title>Simple Map</title> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css"> <style> html, body, #map { height: 100%; width: 100%; margin: 0; padding: 0; } body { background-color: #FFF; overflow: hidden; font-family: "Trebuchet MS"; } </style> <script src="http://js.arcgis.com/3.9/"></script> <script> var map, csv, textLayer; require([ "esri/map", "esri/layers/CSVLayer", "esri/Color", "esri/graphic", "esri/layers/GraphicsLayer", "esri/symbols/SimpleMarkerSymbol", "esri/renderers/SimpleRenderer", "esri/InfoTemplate", "esri/urlUtils", "esri/symbols/Font", "esri/symbols/TextSymbol", "dojo/on", "dojo/_base/array", "dojo/domReady!" ], function( Map, CSVLayer, Color, Graphic, GraphicsLayer, SimpleMarkerSymbol, SimpleRenderer, InfoTemplate, urlUtils, Font, TextSymbol, on, array ) { urlUtils.addProxyRule({ proxyUrl: "http://server1/proxy/proxy.ashx", urlPrefix: "server1" }); map = new Map("map", { basemap: "gray", center: [-81.874901, 35.824528], zoom: 8 }); csv = new CSVLayer("http://server1/UserData/riverquery.csv"); csv.on("update-end", function(results){ textLayer = new GraphicsLayer(); array.forEach(results.target.graphics, function(feature, index){ var lid = feature.attributes.lid; var value = feature.attributes.value; var pe = feature.attributes.pe; var ts = feature.attributes.ts; var attr = {"Value":value,"PE":pe,"TS":ts}; var geom = feature.geometry; var displayText = feature.attributes.lid; var font = new Font( "12pt", Font.STYLE_NORMAL, Font.VARIANT_NORMAL, Font.WEIGHT_BOLD, "Helvetica" ); var textSymbol = new TextSymbol( displayText, font, new Color("#DC143C") ); textLayer.add(new Graphic(geom, textSymbol, attr)); }); var infoTemplate = new InfoTemplate("Attributes", "${*}"); textLayer.setInfoTemplate(infoTemplate); map.addLayer(textLayer); }); var blank = new Color([0, 0, 0, 0]); // hex is #ff4500 var marker = new SimpleMarkerSymbol("solid", 0, null, blank); var renderer = new SimpleRenderer(marker); csv.setRenderer(renderer); map.addLayer(csv); }); </script> </head> <body> <div id="map"></div> </body> </html>
You can zip up the code and CSV file, and then upload the zip file.
Hi Charles,When are you calling this function? Can you post your code and possibly the CSV file you are using?
//Add Latest RiverStages CSV Layers var riverCSVtemplate = new InfoTemplate(); riverCSVtemplate.setContent(getriverCSVTextContent); var LatestRiverStages = new CSVLayer("symGSPHydroViewer/data/riverquery.csv",{id:"LatestRiverStages",mode: FeatureLayer.MODE_SELECTION,outFields: ["*"],infoTemplate: riverCSVtemplate}); console.log("HERE1"); LatestRiverStages.on("update-end", function(results){ var textLayer = new GraphicsLayer(); console.log("HERE2"); arrayUtils.forEach(results.target.graphics, function(feature, index){ console.log("HERE3"); var geom = feature.geometry; var displayText = feature.attributes.value; var font = new Font( "12pt", Font.STYLE_NORMAL, Font.VARIANT_NORMAL, Font.WEIGHT_BOLD, "Helvetica" ); var textSymbol = new TextSymbol( displayText, font, new Color("#DC143C") ); textLayer.add(new Graphic(geom, textSymbol)); }); map.addLayer(textLayer); }); console.log("HERE4"); var blank = new Color([0, 0, 0, 0]); // hex is #ff4500 var marker = new SimpleMarkerSymbol("solid", 0, null, blank); var renderer = new SimpleRenderer(marker); LatestRiverStages.setRenderer(renderer); map.addLayer(LatestRiverStages); console.log("HERE5"); function getriverCSVTextContent (graphic) { console.log("sample"); var attributes = graphic.attributes; var value = "Obs Value: " + attributes.value; var validtime = "Valid Time: " + attributes.validtime; return value + "</b><br />" + validtime }
function getriverCSVTextContent (graphic) { var attributes = graphic.attributes; var value = "Obs Value: " + attributes.value; var validtime = "Valid Time: " + attributes.validtime; return value + "</b><br />" + validtime }
//Add Latest RiverStages CSV Layers var riverCSVtemplate = new InfoTemplate(); riverCSVtemplate.setContent(getriverCSVTextContent); var LatestRiverStages = new CSVLayer("symGSPHydroViewer/data/riverquery.csv",{id:"LatestRiverStages",mode: FeatureLayer.MODE_SELECTION,outFields: ["*"],infoTemplate: riverCSVtemplate}); console.log("HERE1"); LatestRiverStages.on("update-end", function(results){ var textLayer = new GraphicsLayer(); console.log("HERE2"); array.forEach(results.target.graphics, function(feature, index){ console.log("HERE3"); var geom = feature.geometry; var displayText = feature.attributes.value; var font = new Font( "12pt", Font.STYLE_NORMAL, Font.VARIANT_NORMAL, Font.WEIGHT_BOLD, "Helvetica" ); var textSymbol = new TextSymbol( displayText, font, new Color("#DC143C") ); textLayer.add(new Graphic(geom, textSymbol)); }); map.addLayer(textLayer); }); console.log("HERE4"); var blank = new Color([0, 0, 0, 0]); // hex is #ff4500 var marker = new SimpleMarkerSymbol("solid", 0, null, blank); var renderer = new SimpleRenderer(marker); LatestRiverStages.setRenderer(renderer); map.addLayer(LatestRiverStages); console.log("HERE5");
Hi Charles,Using the 'update-end' event for the CSVLayer class, I was able to obtain the feature's attributes, and then use this as a TextSymbol. Here is the code I used:var map, csv; require([ "esri/map", "esri/layers/CSVLayer", "esri/Color", "esri/graphic", "esri/layers/GraphicsLayer", "esri/symbols/SimpleMarkerSymbol", "esri/renderers/SimpleRenderer", "esri/InfoTemplate", "esri/urlUtils", "esri/symbols/Font", "esri/symbols/TextSymbol", "dojo/on", "dojo/_base/array", "dojo/domReady!" ], function( Map, CSVLayer, Color, Graphic, GraphicsLayer, SimpleMarkerSymbol, SimpleRenderer, InfoTemplate, urlUtils, Font, TextSymbol, on, array ) { urlUtils.addProxyRule({ proxyUrl: "http://server1/proxy/proxy.ashx", urlPrefix: "skinner-lap" }); map = new Map("map", { basemap: "gray", center: [ -60, -10 ], zoom: 4 }); csv = new CSVLayer("http://server1/UserData/2.5_week.csv", { copyright: "USGS.gov" }); csv.on("update-end", function(results){ var textLayer = new GraphicsLayer(); array.forEach(results.target.graphics, function(feature, index){ var geom = feature.geometry; var displayText = feature.attributes.id; var font = new Font( "12pt", Font.STYLE_NORMAL, Font.VARIANT_NORMAL, Font.WEIGHT_BOLD, "Helvetica" ); var textSymbol = new TextSymbol( displayText, font, new Color("#DC143C") ); textLayer.add(new Graphic(geom, textSymbol)); }); map.addLayer(textLayer); }); var blank = new Color([0, 0, 0, 0]); // hex is #ff4500 var marker = new SimpleMarkerSymbol("solid", 0, null, blank); var renderer = new SimpleRenderer(marker); csv.setRenderer(renderer); map.addLayer(csv); });
var map, csv; require([ "esri/map", "esri/layers/CSVLayer", "esri/Color", "esri/graphic", "esri/layers/GraphicsLayer", "esri/symbols/SimpleMarkerSymbol", "esri/renderers/SimpleRenderer", "esri/InfoTemplate", "esri/urlUtils", "esri/symbols/Font", "esri/symbols/TextSymbol", "dojo/on", "dojo/_base/array", "dojo/domReady!" ], function( Map, CSVLayer, Color, Graphic, GraphicsLayer, SimpleMarkerSymbol, SimpleRenderer, InfoTemplate, urlUtils, Font, TextSymbol, on, array ) { urlUtils.addProxyRule({ proxyUrl: "http://server1/proxy/proxy.ashx", urlPrefix: "skinner-lap" }); map = new Map("map", { basemap: "gray", center: [ -60, -10 ], zoom: 4 }); csv = new CSVLayer("http://server1/UserData/2.5_week.csv", { copyright: "USGS.gov" }); csv.on("update-end", function(results){ var textLayer = new GraphicsLayer(); array.forEach(results.target.graphics, function(feature, index){ var geom = feature.geometry; var displayText = feature.attributes.id; var font = new Font( "12pt", Font.STYLE_NORMAL, Font.VARIANT_NORMAL, Font.WEIGHT_BOLD, "Helvetica" ); var textSymbol = new TextSymbol( displayText, font, new Color("#DC143C") ); textLayer.add(new Graphic(geom, textSymbol)); }); map.addLayer(textLayer); }); var blank = new Color([0, 0, 0, 0]); // hex is #ff4500 var marker = new SimpleMarkerSymbol("solid", 0, null, blank); var renderer = new SimpleRenderer(marker); csv.setRenderer(renderer); map.addLayer(csv); });
//Add Latest RiverStages CSV Layers var riverCSVtemplate = new InfoTemplate(); riverCSVtemplate.setContent(getriverCSVTextContent); var LatestRiverStages = new CSVLayer("./data/riverquery.csv",{id:"LatestRiverStages",mode: FeatureLayer.MODE_SELECTION,outFields: ["*"],infoTemplate: riverCSVtemplate}); var Green = new Color([0, 255, 0, 1.0]); var labelField = "value"; var symbol = new TextSymbol(); symbol.setAlign = TextSymbol.ALIGN_MIDDLE; var font = new Font(); font.setSize("8pt"); font.setWeight(Font.WEIGHT_BOLD); symbol.setFont(font) symbol.setText("${" + labelField + "}") symbol.setColor(new Color(Green)); var renderer = new SimpleRenderer(symbol); LatestRiverStages.setRenderer(renderer); map.addLayer(LatestRiverStages); // LatestRiverStages.hide();
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.