POST
|
Thanks Manojraj. This time it did work. May be there was some issue with the expression string that was getting created. Now when I do blockLayer.getDefinitionExpression() it gives me "STATE_FIPS = '01' AND CNTY_FIPS='001'". Thanks.
... View more
10-28-2013
05:26 AM
|
0
|
0
|
603
|
POST
|
When I set definition expression of a county layer to countyLayer.setDefinitionExpression("STATE_FIPS = '" + fips + "'"); only the counties in state with FIPS as fips are rendered. Now, what I need to do is render all the blocks inside a county of a state. Block group layer has STATE_FIPS (length 2 ) and CNTY_FIPS (length 3). If I set definition expression to blockLayer.setDefinitionExpression("CNTY_FIPS = '" + countyFips + "'"); , this will render blocks inside county with CNTY_FIPS = countyFips. But, since CNTY_FIPS is of length 3 and this expression matches for county in every state and blocks inside all the counties of the states are rendered. I am trying or rather what I need to do is blockLayer.setDefinitionExpression("CNTY_FIPS = '" + countyFips + "' AND STATE_FIPS = '" + fips + "'"); This way only blocks inside a state with STATE_FIPS = fips will be renedered. But combining expression with AND does not work. Any help would be apreciated. Thanks in advance.
... View more
10-28-2013
04:15 AM
|
0
|
2
|
903
|
POST
|
Hello Brian, I think you are looking for onUpdateEnd event of FeatureLayer. Please have a look at this example and understand how "onUpdateEnd" event is used. Thanks, Niranjan
... View more
05-07-2013
11:26 PM
|
0
|
0
|
241
|
POST
|
Hi Rahul, Yes, you seem to be right, the calculation is performed at client side and no service is called. But is there a chance where I can get the algorithm that does this. My plan is to implement this algo in java code so that I reduce the work that is done on browser. Thanks, Niranjan
... View more
03-15-2013
12:58 AM
|
0
|
0
|
311
|
POST
|
Could you please post part of the code that creates those layers which you want to hide or show.
... View more
03-14-2013
08:30 AM
|
0
|
0
|
3028
|
POST
|
Hi Frank, I think this would definitely help. Below code to hide/show layers is based on your example link. I could open fire-bug and run below statements to hide these layers, for your example link. var allLayersArr = esri.arcgisonline.map.main.mapLayers; //This gives you array of all layers object, log this to get the details of layers
esri.arcgisonline.map.main.mapLayers[0].layer.hide(); // Will hide base layer
esri.arcgisonline.map.main.mapLayers[1].layer.hide(); // Will hide layer at index 1, highlighted in light blue in your example
esri.arcgisonline.map.main.mapLayers[2].layer.hide(); // Will hide layer at index 2, the symbols that identify different types of power outages Regards, Niranjan
... View more
03-14-2013
05:38 AM
|
0
|
0
|
3028
|
POST
|
Hi Frank, OK. Have a look at following code, if this serves your purpose. var myMap = new esri.Map("mapDiv"); // Say you have your map declared and assigned to myMap variable
var layerIdsArr = myMap.layerIds; // This gives ids of all layers added to map.
var layer = myMap.getLayer(layerIdsArr[0]);// Say you want layer with an id at first index of layerIdsArr
layer.hide();// Will hide layer
layer.show(); Will show layer Is this helpful? ~ Niranjan
... View more
03-14-2013
04:03 AM
|
0
|
0
|
3028
|
POST
|
Hi Frank, Could you please be a bit more clear on what you mean by turning ON and OFF feature layers. If you just want to hide and show them then its very simple. featureLayer = new esri.layers.FeatureLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer/0",{
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
infoTemplate: infoTemplate,
outFields: ["*"]
});
featureLayer.hide(); // This will hide the layer
featureLayer.show(); // This will show the layer Other option is to set min and max scales of feature layer, so the layer is automatically hidden or shown based on zoom level. For this you can have a look at this example. Check out how layerScales are set. Good Luck.
... View more
03-14-2013
02:20 AM
|
0
|
0
|
3028
|
POST
|
Hi, Can some one please share or point me to an algorithm and/or javascript code (actual implementation) of the ArcGIS' esri.geometry.toScreenGeometry(extent, width, height, screenGeometry) geometry service. Details at geometry service details. I have to get screen geometries for about 15,000-20,000 points. Calling above geometry service in loop takes substatial amount of time around 5 secs for 15,000 points. I am looking for a javascript function which would take input as above service and return me screen geometyr object. I have already got a javascript function for this esri.geometry.geographicToWebMercator(geometry) service. Thanks, Niranjan
... View more
03-14-2013
01:48 AM
|
0
|
2
|
764
|
POST
|
Hi, Let me start by explaining what I am trying to do. I have about 5 lakh data points and I need to generate a heat-map out of it. I am using http://www.patrick-wied.at/static/heatmapjs/ library for this. This library works fine for limited data points. I could render 1 lakh points in 7 secs. Rendering these many points on map is NOT possible and is also useless in this case. Each data point provided to the heat-map has 'count' property associated with it which is the frequency of that point. I want to make use of this 'count' property and reduce the number of points I am plotting. For this I need to group (cluster) those points based on the proximity, so that they are converted into say 1000 points with the respective frequencies associated with each point. Does ArcGIS provide any service (REST/SOAP which could be invoked from server say Java code and not client) for this? This is one part. Next, once I do this and generate a heat-map out of it I need to do following. Every time I zoom in/out or rather change the extent of the map I want to know of all the data points I have, how many belong to current extent and if count is less than threshold (say 1000) I will be hiding the heat-map layer and plotting actual points. This way I will be plotting actual points only if they are less than threshold else I will be showing heat-map. So, is there any ArcGIS service (REST/SOAP which could be invoked from server say Java code and not client) that will take input as geometries (all the data points) and the region ( say any polygon geometry) and tell me how many of those points belong to the input region. Thanks in advance. ~ Niranjan
... View more
01-23-2013
05:23 AM
|
0
|
0
|
480
|
POST
|
Thanks Jeff, for pointing out the exact ArcGIS api for doing this. This will definitely help. But I need to plot points in thousands, doing these conversions during plotting won't be a good idea. The function 'toWebMercator' mentioned above in the thread does this conversion. So its better to get those points already converted to WEBMERCATOR and then its just a matter of plotting them directly on the map. Thanks, Niranjan
... View more
01-16-2013
01:06 AM
|
0
|
0
|
1746
|
POST
|
Hi Jhonny, Finally, got what I was looking for. Was going through rest of the links on your blog and came across http://jpenet.blogspot.be/2012/07/using-different-projections-within.html. 2. TRANSFORMATION BETWEEN WGS84 AND WEBMERCATOR (102100/3857) This has a function
function toWebMercator(xlon, ylat) {
if ((Math.abs(mercatorX_lon) > 180 || Math.abs(mercatorY_lat) > 90))
return null;
var num = xlon * 0.017453292519943295;
var x = 6378137.0 * num;
var a = ylat * 0.017453292519943295;
var y = 3189068.5 * Math.Log((1.0 + Math.Sin(a)) / (1.0 - Math.Sin(a)));
return {
x: x,
y: y
}
}
which is what i was looking for. This converts exactly the way i needed. You have saved my lot of time ( time to get this solved and the arcgis Geometry service response time 🙂 ). Thanks a lot again. Regards, Niranjan
... View more
01-12-2013
05:18 AM
|
0
|
0
|
1745
|
POST
|
Hi Jhonny, I could make things work with the help of functions you have defined. I gave input point as var point = {
lng : -80.430123,
lat : 37.2447239
}; and got the converted point as {"x":-5991744.271143372,"y":2592441.1643744702} All the functions woked correctly. But I am not interested in converting into Lambert 72. I need to convert points from
Well-known ID Name
4326 GCS_WGS_1984
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] TO
Well-known ID Name
102100 WGS_1984_Web_Mercator_Auxiliary_Sphere
PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]
. This is an example of what I need to do : http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer/project?inSR=4326&outSR=102100&geometries=%7B%0D%0A%22geometryType%22%3A%22esriGeometryPoint%22%2C%0D%0A%22geometries%22%3A%5B%7B%22x%22%3A-80.430123%2C%22y%22%3A37.2447239%7D%5D%0D%0A%7D&f=HTML All these coordinate systems are too confusing 😞 . Can you please give some pointers in what all parameters i need to add/modify to CoordTransform.ellipse and
CoordTransform.datumTransform properties and what new functions i need to add to get this done. I appreciate your help a lot. Eagerly waiting for your reply. Thanks in advance again. Niranjan
... View more
01-12-2013
03:54 AM
|
0
|
0
|
1745
|
POST
|
Hi Johnny, Thanks a lot for such a quick reply. I have gone through your blog and it seems this is going to help me. Thanks, Niranjan
... View more
01-12-2013
02:41 AM
|
0
|
0
|
1746
|
POST
|
Hi, My problem seems to be more common but the solutions provided don't apply in my case. I googled a lot and finally decided to post a question. Let me start by explaining what I am trying to do: I have a large set of points (around 40 to 50 thousand) to be plotted which are in latitudes and longitudes. I created a map with following intialExtent and base layer: var initExtent = new esri.geometry.Extent({
"xmin" : -9025716.63,
"ymin" :4428892.14,
"xmax" : -8888129.98,
"ymax" : 4520616.57,
"spatialReference" : {
"wkid" : 102100
}
});
var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");
Spatial Reference (SR) for the map is WKID:102100 which does not allow me to plot my points in lat-long (as lat-long can be plotted on a map with SR WKID:4326, "I think so..Please correct if this is not the case " ). So I need to transform these lat-long to X-Y coordinates i.e. in SR WKID:102100. I could find the arcgis's GeometryService to do this but only for points less than 15 at a time, obviously on the arcgis's public server. So there is no way i could transform all those 40-50 thousand points this way. I tried following things: Creating the map with SR WKID:4326 and plotting the points in lat-long itself, no conversion required. This plots the points correctly but the map images are not fetched, the images saying "NO map data available" are shown on the map. Is there any relation between type of layer used and SR? I mean is it a case, that certain types of layers support only certain SRs. Tried to create map with SR WKID:102100 and another layer with WKID:4326 and then plot points on this layer. But this doesn't work, from the api reference of the arcgis I feel all other layers extend the SR of the map/base layer. So there is no way i could have layers with different SR WKIDs. So finally I came to a conclusion that I need to convert those points from WKID 4326 to WKID 102100. The Geometry service api ref http://resources.arcgis.com/en/help/rest/apiref/ has an option to provide URL based geometries where URL points to a file with all the points to be converted in JSON format. I could not get this working :(. When I hit the REST API URL http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer/project?inSR=4326&outSR=102113&geometries={"geometryType"%3A"esriGeometryPoint"%2C"geometries"%3A[{"x"%3A-117%2C"y"%3A34}]} it takes me to the HTML page. How can I make use of this option and convert all those points in bulk. Please answer following questions : Is there a way in which I could plot all those points in lat-long itself by creating a map with WKID:4326? If yes, any example? How can I convert all those points in bulk from SR WKID 4326 to SR WKID 102100? This way I am planning to convert all lat-longs offline and then use them to plot. Thanks in advance. Niranjan
... View more
01-12-2013
12:40 AM
|
0
|
7
|
8023
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|