POST
|
I am using the "new" Map Viewer. I have successfully loaded a CSV and GeoJSON file to my map via the "Add layer from URL" option. They display properly and I can view their tables. After configuring the map, I created a web app for it using the Sidebar Instant App. In my Sidebar app, the two layers display correctly on the map and the popup works. However, neither one is in the Layers list, so I have no way to toggle them on/off or view their tables. Is this a bug in the Sidebar Instant App?
... View more
02-12-2024
07:28 PM
|
1
|
1
|
455
|
POST
|
Thanks, Robert! That helped a lot -- I was able to incorporate what you provided into my custom code. Appreciate your time in responding. Joan
... View more
03-14-2016
12:36 PM
|
0
|
0
|
999
|
POST
|
I have coded an Identify Task button that works with the "on click" event. But my users want to be able to draw a rectangle instead of clicking a point on the map. I can't seem to wrap my brain around how to do this. Does anyone have sample code for the Identify Task that uses a user-drawn polygon? Thanks, Joan
... View more
03-10-2016
04:53 PM
|
0
|
2
|
3760
|
POST
|
I have several coded value domains set up in my geodatabase. I want to add the value NULL as a Code with the Description "blank". So if the attribute's value is <Null> it will display the string "blank". Is this do-able?
... View more
03-24-2015
12:19 PM
|
0
|
1
|
4260
|
POST
|
That worked great! I adjusted the values for top and right, and got it placed pretty well (see below). Thanks so much -- css is not my strong point so I appreciate the help.
... View more
03-18-2015
01:22 PM
|
0
|
0
|
893
|
POST
|
I am using version 3.9 of the API. My app is based on the one-pane Basic Viewer template which I downloaded 2 years ago (April 2013). The template has an Editor tab that displays provided you have an editable feature service loaded. So, the attributes aren't loaded into a Pop-up Window. I've done a good amount of customization, so swapping out to a newer template would be a lot of work. Below is what the Editor tab looks like in my app. The navigation buttons are baked in somewhere in the Basic Viewer template or AttributeInspector widget? Top half: Bottom half:
... View more
03-17-2015
02:33 PM
|
0
|
2
|
893
|
POST
|
In the interest of time and ease of complexity, I instead added a message before the attribute list that reports the number of features selected. So I modified the editDiv line in function createEditor (line 31 above) to : dojo.byId('editDiv').innerHTML = "<p style='margin-left:5px;margin-top:0px;font-weight:bold;'><span id='editMessageSpan'>Click on Rezoning Case to Edit</span><span id='featureCountSpan'></span></p><div id='attributesDiv'></div>"; And added messages in function showAttributes seen below. //Added selectRezoning fn for Editor tab to select the features, 4/4/13 jms.
function selectRezoning() {
console.log("-->inside selectRezoning function");
var selectQuery = new esri.tasks.Query();
dojo.connect(map, "onClick", function(evt) {
selectQuery.geometry = evt.mapPoint;
rezFeatLayer.selectFeatures(selectQuery, esri.layers.FeatureLayer.SELECTION_NEW, showAttributes);
});
}
//Added showAttributes fn for Editor tab to show the selected the features, 4/4/13 jms.
function showAttributes(features) {
console.log("-->inside showAttributes function");
console.log("features.length: " + features.length);
if (features.length > 0) {
//dojo.byId("attributesDiv").innerHTML = attInspector.domNode;
dojo.byId('editMessageSpan').innerHTML = "";
dojo.byId('featureCountSpan').innerHTML = "Rezoning Cases selected: " + features.length;
dojo.byId('attributesDiv').appendChild(attInspector.domNode);
} else {
dojo.byId('editMessageSpan').innerHTML = "Click on Rezoning Case to Edit";
dojo.byId('featureCountSpan').innerHTML = "";
dojo.byId('attributesDiv').innerHTML = "";
}
} While I'd still like to put the default Attribute Inspector navigation up top, my main purpose is to alert the user that more than one feature got selected. So, displaying the number of selected features will serve my needs -- perhaps it will help others also.
... View more
03-12-2015
11:02 AM
|
0
|
0
|
893
|
POST
|
I have added the AttributeInspector to my web app (based on the Basic Viewer template) and it's working fine. However, the list of attributes is long and when you click on overlapping features you have to scroll to the bottom of the list to view the navigation buttons. Is there a way to add a "duplicate" set up navigation buttons at the top of the attribute list, or at least move them from the bottom to the top? My code is below. Thanks, Joan //JMS MODIFIED FUNCTION TO USE ATTRIBUTE INSPECTOR WIDGET, 4/4/13.
//Functions to create and destroy the editor. We do this each time the edit button is clicked.
var rezFeatLayer;
var attInspector;
function createEditor() {
console.log("-->inside createEditor function");
if (attInspector) {
return;
}
if (editLayers.length > 0) {
var templateLayers = dojo.map(editLayers, function (layer) {
return layer.featureLayer;
});
rezFeatLayer = templateLayers[0];
console.log("rezFeatLayer.url: " + rezFeatLayer.url);
rezFeatLayer.mode = esri.layers.FeatureLayer.MODE_SELECTION;
rezFeatLayer.outFields = ["*"];
//Set symbol for highlighting the selected rezoning feature, 6/11/13 jms.
var symbol = new esri.symbol.SimpleFillSymbol(outlinefillSymbol);
rezFeatLayer.setSelectionSymbol(symbol);
var eDiv = dojo.create("div", {
id: "editDiv"
});
dojo.byId('editPanel').appendChild(eDiv);
dojo.byId('editDiv').innerHTML = "<p style='margin-left:5px;'>Select Rezoning Case to Edit</p><div id='attributesDiv'></div>";
var layerInfos = [{
'featureLayer': rezFeatLayer,
'showAttachments': false,
'isEditable': true,
'showDeleteButton': false,
'fieldInfos': rezFieldInfos
}];
attInspector = new esri.dijit.AttributeInspector({
layerInfos: layerInfos
}, "div");
//added to save the edits, 3/14/14 jms
attInspector.on('attribute-change', function(evt){
var feature = evt.feature;
console.log(evt);
feature.attributes[evt.fieldName] = evt.fieldValue;
feature.getLayer().applyEdits(null, [feature], null);
});
disablePopups();
selectRezoning();
}
}
... View more
03-11-2015
03:01 PM
|
0
|
6
|
4496
|
POST
|
Thanks Melita. I got similar information from ESRI tech support yesterday. Here's the information they provided: “I would like to inform you that as this is a free basemap, it is meant for reference only, and therefore does not have a legend or key. With that being said, we know that if you are viewing the topographic map at 1:100,000 to 1:24,000 then you are actually viewing the National Geographic TOPO! maps which are seamless, scanned images of United States Geological Survey (USGS) paper topographic maps. I could only find the key to these maps from outside resources, and those were not authoritative resources such as National Geographic and USGS.” And here's a link to the same information you provided from USGS, but html format instead of pdf. Guide to USGS Topographic Map Symbols After looking at the satellite imagery for the specific area my user was asking about, it appears that "Wooded marsh or swamp" is the most likely description. Hope all this helps others.
... View more
12-03-2014
08:04 AM
|
2
|
0
|
1002
|
POST
|
I am using ESRI's World Street Map and World Topographic Map basemaps in a web application. I had a user ask what a specific layer is on the basemaps and I am unsure where it comes from or what it represents. The symbology looks like vegetation on water (I've inserted an image of it from both basemaps). Does anyone know what layer this is? I've look at the documentation listed below but it's still not clear to me what I'm looking at. Are there any legends that list each layer with a description and symbology? Thanks... Documentation: http://www.arcgis.com/home/item.html?id=3b93337983e9436f8db950e38a8629af http://www.arcgis.com/home/item.html?id=3b93337983e9436f8db950e38a8629af http://help.arcgis.com/en/communitymaps/pdf/WorldStreetsMap_Contributors.pdf
... View more
12-01-2014
11:10 AM
|
0
|
2
|
4814
|
POST
|
Here's what I came up with to keep the visible display layers in sync with the popup layers. First define your layers (note the naming convention with the ids). webmap.itemData = {
//IMPORTANT: Make sure the id of the popup and display layers are consistent!
//All popup layers need be named "pop" + {name of display layer}
//e.g. for Existing LU, the display layer id = "elu" and the corresponding popup layer id = "popelu"
//IMPORTANT: Make sure the popup and display layers are set to the same visibility (i.e., both 'true' or both 'false')
"operationalLayers": [
//Existing Land Use (popup)
{ "url": "http://gis.tpcmaps.org/ArcGIS/rest/services/LandUse/Existing_Land_Use/MapServer/0",
"visibility": false,
"opacity": 0,
"mode": 2, //Selection-only
"layerDefinition": {
"minScale": 100000,
"maxScale": 0,
},
"title": "popup Existing Land Use",
"id": "popelu",
"popupInfo": {
"title": "Existing Land Use",
"fieldInfos": [
{'fieldName': "JURISDICTION","label": "Jurisdiction","visible": true,},
{"fieldName": "ELUSHADE","label": "Existing LU","visible": true,},
{"fieldName": "ELU2_DESC","label": "Description","visible": true,}
],
"description": null
}
},
//Existing Land Use (display tiled service)
{ "url": "http://gis.tpcmaps.org/ArcGIS/rest/services/LandUse/Existing_Land_Use/MapServer",
"visibility": false,
"opacity": 0.75,
"title": "Existing Land Use",
"id": "elu",
"description": null
}, Then in the addLayerList function, I added the indented code within the onChange function: dojo.forEach(layerList, function (layer) {
menu.addChild(new dijit.CheckedMenuItem({
label: layer.title,
checked: layer.visible,
onChange: function () {
if (layer.layer.featureCollection) {
//turn off all the layers in the feature collection even
//though only the main layer is listed in the layer list
dojo.forEach(layer.layer.featureCollection.layers, function (layer) {
layer.layerObject.setVisibility(!layer.layerObject.visible);
});
} else {
layer.layer.setVisibility(!layer.layer.visible); //this is where the layer's visibility is toggled on/off.
[INDENT] //ADDITIONAL CODE
//Add the following to toggle the corresponding popup layer(s) in sync with the display layer. 11/20/13 jms
//This way the popup box functionality will only return results from visible layers. (Too many layers in the list slows down the popup functionality otherwise...)
//Important! Make sure in the create webmap that the popup and display layers are set to the same visibility (i.e., both 'true' or both 'false')
console.log("layer: '" + layer.layer.id + "', visibility changed to '" + layer.layer.visible + "'");
//console.log("popupid: " + map.getLayer("popelu").id);
//var popupId = "popelu";
var popupId = "pop" + layer.layer.id;
var popupLayer = map.getLayer(popupId);
popupLayer.setVisibility(!popupLayer.visible);
console.log("popupLayer: '" + popupLayer.id + "', visibility changed to '" + popupLayer.visible + "'");[/INDENT] //END OF ADDITIONAL CODE
}
}
}));
}); Maybe not an elegant solution, but it seems to work. Hope that might help someone else. Joan
... View more
11-21-2013
09:23 AM
|
0
|
0
|
237
|
POST
|
I have downloaded the basic template viewer and have created the webmap via code. See below for snippet of how I define the layers.
//Existing Land Use (popup)
{ "url": "http://gis.tpcmaps.org/ArcGIS/rest/services/LandUse/Existing_Land_Use/MapServer/0",
"visibility": true,
"opacity": 0,
"mode": 2, //Selection-only
"layerDefinition": {
"minScale": 100000,
"maxScale": 0,
},
"title": "popup Existing Land Use",
"id": "popelu",
"popupInfo": {
"title": "Existing Land Use",
"fieldInfos": [
{'fieldName': "JURISDICTION","label": "Jurisdiction","visible": true,},
{"fieldName": "ELUSHADE","label": "Existing LU","visible": true,},
{"fieldName": "ELU2_DESC","label": "Description","visible": true,}
],
"description": null
}
},
//Existing Land Use (display tiled service)
{ "url": "http://gis.tpcmaps.org/ArcGIS/rest/services/LandUse/Existing_Land_Use/MapServer",
"visibility": false,
"opacity": 0.75,
"title": "Existing Land Use",
"id": "elu",
"description": null
},
//TT Zoning (popup)
{ "url": "http://gis.tpcmaps.org/ArcGIS/rest/services/Rezoning/Zoning/MapServer/0",
"visibility": true,
"opacity": 0,
"mode": 2, //Selection-only
"title": "popup TT Zoning",
"id": "popttzon",
"popupInfo": {
"title": "TT Zoning",
"fieldInfos": [
{"fieldName": "ZONING","label": "Zoning","visible": true,},
],
"description": null
}
},
//TT Zoning (display dynamic service, set visibleLayers)
{ "url": "http://gis.tpcmaps.org/ArcGIS/rest/services/Rezoning/Zoning/MapServer",
"visibility": false,
"opacity": 0.75,
"visibleLayers": [0], //set layer to Zoning
"title": "TT Zoning",
"id": "ttzon",
"description": null
}, As you can see, I'm having to load the map service for display purposes and the individual layer for the popup functionality. The default behavior of clicking on the map opens the popup infowindow. The issue is that there are around 20 individual layers in the webmap so the popup returns a lot of results (which is slow and/or more than the user is interested in). Instead, when the user clicks on the map, I'd like to query the visible layers (map services), create a list of the corresponding popup layers, and use that list in the popup functionality. But where in the code would I set the layer list that the popup uses? Can that list be "refreshed" every time the user clicks on the map? Am I over-complicating things? Is there an easier way to accomplish what I'm trying to do? Thanks
... View more
10-29-2013
12:26 PM
|
0
|
1
|
390
|
POST
|
In trying to upgrade the api, I'm getting an error on this line: console.log(esri.geometry.getScale(map.extent, map.width, map.spatialReference.wkid)); which is called after the following: configExtent = {
"xmin" : -9215700,
"ymin" : 3216400,
"xmax" : -9119800,
"ymax" : 3256100,
"spatialReference" : {
"wkid" : 102100
}
};
var initialExtent = new esri.geometry.Extent(configExtent);
var lods = configLods;
var popup = new esri.dijit.Popup(null, dojo.create("div"));
//Set map parameters.
map = new esri.Map("map", {
extent : initialExtent,
logo : false,
infoWindow : popup,
slider : true,
sliderStyle : "default", //use 'small' if you want just the +/- icons
nav : true, //shows the pan buttons.
lods : lods, //sets the navigation slider to the specified levels.
showAttribution : false
}); Has something changed in 3.5 to make this not work? Thanks, Joan
... View more
09-12-2013
11:42 AM
|
0
|
1
|
466
|
POST
|
Steve, Thanks for testing. Not sure why it wasn't working on the machine I was using. I downloaded an IETester and then checked it on IE 8 and the app seems to work fine. Thanks for your help, Joan
... View more
08-26-2013
10:35 AM
|
0
|
0
|
348
|
POST
|
I have a custom app that works in Internet Explorer 8 with the exception of displaying graphics. Regardless of whether the graphic is created from drawing a shape or selecting a feature, they are not drawn on the map. I can't seem to track down the issue. Anyone have any ideas? Here's a link to he app: http://gis.tpcmaps.org/apps/staging/pima/ None of the Map Tasks (right sidebar) are showing graphics as they should... Thanks, Joan
... View more
08-23-2013
10:28 AM
|
0
|
2
|
715
|
Title | Kudos | Posted |
---|---|---|
1 | 02-12-2024 07:28 PM | |
2 | 04-04-2013 06:54 AM | |
1 | 04-09-2013 11:27 AM | |
2 | 12-03-2014 08:04 AM | |
1 | 05-09-2013 12:45 PM |
Online Status |
Offline
|
Date Last Visited |
02-13-2024
03:46 AM
|