Hot answers tagged

14

I would assume that you would just like for any live web map service, you make your map server 'think' as little as possible. In other words, pre-compute everything that you can. Put all of your data in the same SRS so there is no projection happening 'on-the-fly'. Create spatial indexes on your data. Build generalized overviews of your data and use scale ...


10

You may have already done this but it's worth mentioning for others that might come along. Spending some time using the Map Service Publishing toolbar in ArcMap can make a world of difference in the performance of a dynamic map service. The Analyze Map tool works well for finding issues that slow down map services. Also, saving and publishing as a map ...


8

A few other points to add to DavidF's answer: If you can, make sure to use an optimized (MSD) based service. They do draw faster than a regular (MXD) service, and the process of creating the MSD service will run some analysis on your map which can expose issues that could lead to slow draw times. Use simplified renderers where possible. Avoid complex ...


6

A couple of ways to accomplish these types of tasks. 1. Round ([myfield], 2) This works for field calculator, labeling, etc. 2. in the layer dialog left click the label column and select format labels 3. select the number format in the field properties and change the number of decimals.


6

Not fully dynamic, but in general this python code snippet will update a text element with the topmost layer name that is turned on in the defined dataframe: mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] # default Layers dataframe for lyr in arcpy.mapping.ListLayers(mxd, "*", df): if lyr.visible == True: ...


4

It may be that what you are looking for is to be able to flow/wrap text within rectangular text elements. How to do this is documented here.


4

Is dynamically generating Choropleth maps a solved problem? No. The in-browser examples you point to use simplified shapes for the world's countries. This fits into most browser's processing and memory constraints. If you were to make a choropleth of, for instance, census blocks, every browser would crash. The geographic data matters. There's no standard ...


4

This actually makes the geotools faq page for gt-swing. The real answer is to use JMapPane as an example (because that is what it is) and build your own widget using a number of layers for a fast response. You may also find the spatial indexed back feature collections useful in providing a fast experience if you don't mind holding your data in memory. ...


4

I'm not really sure what you mean by "let's say that the KML is moving", but if you want to change the location of a popup after it has been created, here's how you do it: // Set the new lonlat location. popup.lonlat = new OpenLayers.LonLat(popup.lonlat.lon - 1, popup.lonlat.lat - 1); // Tell OpenLayers to update the popup's location on the map. popup....


4

Set it as a File type. You can use parameter validation to ensure the file extension is ".pdf" or as @blah238 notes, use the filter option to restrict file type to pdf.


4

This can be achieved by going to the Labels section within Layer Properties, choose Symbol, then Edit Symbol. In the editor go to the Advanced Text tab, and choose Text Background. Click Properties and then choose Marker Text Background from the type drop down. Check the scale marker to fit text box, and choose a symbol from the Symbol... option, a circle ...


3

Here is what really happens. A Vector Layer is basically just a container for Graphics in the map. It can come from WFS, a GeoJSON file, GeoRSS, KML, an Ajax Request (like in your case), from a drawing control of the map, and many more. A Vector Layer has an array of features. If a protocol has been set for the layer (i.e. You have told the layer where to ...


3

I managed to figure this out... My code now iterates through feature classes, requests a field name, calculates fields, deletes unwanted fields. And then joins the left over fields to each other with a spatial join. I was stuck on adding the interactive tkinter dialog box in the first loop, and the delete field text at the end of the first loop. I still have ...


3

Came across this looking for the same answer. The best way I found is to add a \n, in the attribute text, where you want your break. Billy Joes \n Dry Cleaners LLC = Billy Joes Dry Cleaners LLC


3

CORRECTION TO BAD ANSWER: Just hit the circled tab in my printscreen.


3

On the following line: for lyr in arcpy.mapping.ListLayers(mxd, "", df)[0]: Try removing the [0] at the end. With this you're looking for lyr inside a single layer object. By taking out the [0] you should be able to loop over and search by name like you want


3

Just to make sure I get this right, let me restate what I think it is you want: You want to create the symbology for a dataset that isn't finalized yet so that when you get the final version you can just load it up and have it symbolized already without adjusting anything... is that correct? If so, you can simply symbolize how you want your data to look ...


3

What you want is available starting from QGIS 2.6 and is called Virtual Field. Just create a new attribute, select "Virtual Field" and insert the expression used to calculate the new column. For your case: CASE WHEN "Age" < 18 THEN 'Child' ELSE 'Adult' END You can use a recent nightly build / test build to use this new feature. The value relation ...


3

You should name your elements in the map so that they can be referenced by the element.name property. See the text element docs for elm in arcpy.mapping.ListLayoutElements(thisMap, "TEXT_ELEMENT"): if elm.name == 'TestName' #reference by named element here elm.text = str(row[1]) #do work here


3

Yes, it is documented in the help file in the second to last table. I believe you're looking for <dyn type="dataFrame" name="DataFrameName" property="upperLeft" units="dms" decimalPlaces="4"/> and similar (lowerLeft, upper/lowerRight).


3

You could try to use the move callback: var my_polygonhandler = OpenLayers.Handler.RegularPolygon; var polygonControl = new OpenLayers.Control.DrawFeature(circles, my_polygonhandler, { handlerOptions: { sides: 40 } }); polygonControl.handler.callbacks.move = function (e) { var linearRing = new OpenLayers.Geometry.LinearRing(e....


2

Right-click the overflowing dynamic text line, open its properties, copy the text out of it, and paste it into a new text box that fits your layout the way you want. Or you can start from scratch and create the data-driven text the way you want it. The various dynamic text elements (page number, document title, etc.) are all just tags that can be inserted in ...


2

If you're using REST API, then it seems to me you could do this without arcgis server. When a request comes in for a map, return a json string compliant with the REST API spec, representing new locations. With windows, this could be done by implementing a WCF Rest service. The service would keep an array of vehicles in memory. Each vehicle would have ...


2

Run the Frequency tool to calculate frequency stat against each time period. Then join each period table to the crime layer by the crime type, then link by dynamic text.


2

Parse (using python/etc) RSS feeds from local authorities. Tough, but free. It's a bit of work up front, but then you can write the data directly into your own feature classes, and reserve yourself. Kind of like ESRI's new geoEvent processor Server extension, but all custom through python. I update my services every hour - so far so good. I pull about 500 ...


2

I'm going to disagree with Ken here (sorry Ken) and say this should work as you describe. If you add a new attribute to a dynamic schema it should get added to the output. In fact, I've tried it myself and it seems to work, so I don't know why it isn't happening for you. I've posted my example to Dropbox for you to check out. It uses 2014 but the same ...


2

It's not possible to do this with grid/graticules but you could create the grids as line features with dynamic labels (inside the map frame unfortunately) and set scale ranges to only show certain grids at certain scales.


1

This is tricky but possible in later builds of FME 2013 and FME 2014. You can get the schema in a different way, by adding a SchemaReader to your workspace which has its source parameter linked to read the same source as your MapInfo reader. The schema reader gets the schema from the files you are reading and then we can provide the schema as a list ...


1

I've never had that error myself, but a quick Google search yielded many results. According to many pages I viewed, this is caused by an incompatibility with the currently installed OpenSSL DLLs. You need to download nad install the latest version of Win32 OpenSSL. http://www.openssl.org/ http://slproweb.com/products/Win32OpenSSL.html Have a look at ...


1

Your raster calculation requires all your output rasters to exist but it's getting called on each iteration before they are built. You need to put the iterator part in its own model which becomes a sub model so all that part is called first. Look at the desktop help for submodel.



Only top voted, non community-wiki answers of a minimum length are eligible