Tag Info

Hot answers tagged

17

Fortunately for you (and all of us!), there are plenty of available (and mature!) options in the FOSS4G world! Following your technology preferences here's some examples: Python Mapfish GeoDjango PHP PMapper pure Javascript OpenLayers LeafLet OpenLayers + ExtJS OpenLayers + Jquery Mapquery, jeobrowser For a more complete reference please visit ...


14

There is one blog post from Michalis Avraam that explains essential skills to succeed in GIS career which I think is well written. You will probably find lot of good advices there.


13

Probably not. None stand out. Your time would be much better spent learning Django/GeoDjango. Django is similar to Rails in that it's a web application framework. It uses Python rather than Ruby. The geospatial functionality is much more mature than GeoRuby. Ruby/Rails is a great platform to develop on but the spatial functionality isn't on par with ...


13

If you've got an GDAL/OGR dev environment (headers, libs), you could radically simplify your code by using Fiona. To read features from a shapefile, add new attributes, and write them out as GeoJSON is just a handful of lines: import fiona import json features = [] crs = None with fiona.collection("docs/data/test_uk.shp", "r") as source: for feat in ...


11

I like Chris Garrard's Python for Geoprocessing course materials. http://www.gis.usu.edu/~chrisg/python/2009/ Personally, I find programmatic manipulation of OGR/GDAL to be indispensable. With respect to finding the best fit for you, consider the software or geostack you wish to be most expert in (like ArcGIS, QGIS, PostGIS-GeoServer-OpenLayers), and then ...


11

First question: how much of this are you doing in Python? Are you just calling out to Geoprocessing tools or are you doing a significant amount of numeric analysis in Python? If the former, the bottlenecks likely live in the tools and using native code in your script won't buy you as much as some other clever workarounds. If the latter, then you may want to ...


10

Although this isn't really the direct answer to your question, qgis acts as a relatively simple GIS viewer which can access PostGIS. In addition to the main application -- which is a relatively complex piece of software -- the core of the qgis library can be 'pulled out' and used from an application written in C/C++ or (I believe, with some work) Python. ...


10

You dont need to program to do this - you just need a desktop mapping package and your data in a standard format. Standard formats include shapefiles for points, lines, and polygons, and geoTIFFs for raster (gridded image-type) data. I use the Open Source Quantum GIS, but there are other Open Source applications. Commercial GIS applications will be way too ...


9

ESRI have a heap of videos, and I think these are the best resources to get started. I would recommend looking at the ESRI Developer Conference videos At time of writing, 2010 is the latest A Developers Guide to ArcGIS Server A Developers Guide to ArcGIS Mobile The ESRI Development Process Intro To ArcGIS Desktop Add-Ins Each of these videos conclude ...


9

Don't start with C++ and GIS without learning software development first. It's just too much. Python is a good place to start regardless of what GIS platform you go with later. There are a lot of books, websites and training materials available and a lot of colleges use python as an introduction before going on to the heavy duty programming languages, like ...


8

The GRASS command r.profile performs this (documentation, source) and should provide a good basis for implementing a cross section, and is available under the GPL.


8

i am currently developping a rails app with some mapping capabilities, and i really love ruby and RoR, but sadly enough there is very little plugins mature enough for a complex WMS/WFS service. But i just want to add that the recent rGeo library does quite a good job with projections (proj4 bindings and ability to use other APIs), integrates smoothly with ...


8

Using Fusion Tables and Google Maps you will be able to keep track of your campaign Topic Spotlight: Communicating demographics: Examples https://sites.google.com/site/fusiontablestalks/stories Fusion Mapper will give you a head start: http://earth.google.com/outreach/tutorial_fusion_yourowndata.html


8

You have to use lyr.SetFeature(i) to trigger the update in your shape file. You'll have to close the data sources in the end so things get written. import sys import ogr ds = ogr.Open( 'tttttttttt.shp', update = 1 ) if ds is None: print "Open failed./n" sys.exit( 1 ) lyr = ds.GetLayerByName( "tttttttttt" ) lyr.ResetReading() field_defn = ...


7

Here are few resources to get you started. http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/ http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Walkthrough_Building_custom_UI_elements_using_add_ins/0001000001ms000000/ ...


7

Strictly from a learning perspective, learning something new is always worthwhile. However, Ruby/Ruby on Rails isn't extremely popular in the GIS world. Because of lack of popularity, I would suggest you pick up another language instead, such as Python, if your goal is to learn something new. I don't think you'll find any GIS-specific advantages to ...


6

I've attended two ESRI UCs and got to go to the ESRI Dev Summit in Palm Springs this year. If you are drinking the ESRI Kool-Aid, then the Dev Summit is your best bet over the UC, in my opinion. Everything at the Dev Summit is developer-centric. Code everywhere. ESRI engineers everywhere. The engineers are at the UC as well, but not in such a massive ...


6

If you are interested in Open Source projects, you'll find the answers to this question helpful: What are the FOSS equivalents to these ArcGIS products? There are quite a lot of different options how to build an OS web mapping stack. Without knowing your use case it's a little difficult to suggest one over the other.


6

In general this shouldn't be a problem but there are some objects in the ArcObjects library that you want to be very careful about managing their lifetimes so that you don't tie up critical resources or keep locks on database tables for extended periods. Among lots of other good info, in this thread James MacKay lists some of the types of objects you should ...


6

I would consolidate all of those dojo.addOnLoad() calls. I suspect something isn't getting loaded before a function is getting called. Strip all dojo.addOnLoad calls from all of your external javascript files and bundle them into one call in your main HTML file. Put all the functions you want to fire on load into a new function at the bottom of your ...


6

Happily OGR can do this for you as both ogr.Feature and ogr.Geometry objects have ExportToJson() methods. In your code; fe.ExportToJson() And since geojson FeatureCollection objects are simply dictionaries with a type of FeatureCollection and a features object containing a list of Feature objects. feature_collection = {"type": "FeatureCollection", ...


5

I was able to learn Python by sitting down with a copy of Learning Python by Lutz & Ascher (O'Reilly Press). My office uses ESRI products, so to get the connection with ArcGIS, I created several models using ESRI's Model Builder and exported them to Python. Then it was just a matter of looking at the exported python scripts, digging through the book ...


5

The O'Reilly Where 2.0 conference is a bit on the expensive side, but has a decent spatial developer turnout. It happens in late March each year. If you're going to be working with ESRI software, then the ESRI User Conference is the place to be. 2008 claimed 14,000 attendees, representing a good swath of both their user-base and developers.


5

VS2010 adds support for .Net 4.0, so if you what to use new .Net 4.0 features in other projects choose VS2010. But for ArcGIS 10 projects you are forces to use .Net 3.5, so for those projects it does not matter right now. Place a vote here if you want ArcGIS to use .Net 4.0


5

Just wanted to add a bit from my personal experience. I learned mainly as a by-product of employer needs. First with ArcGIS Desktop scripts, then extensions, then ArcGIS Server (SOE, Web ADF, and web API) programming. The best resource, in my opinion, was really the API and help documentation. When first breaking into an unknown area, I would read a bit ...


5

It is inefficient to be looping over the entire grid for each shapefile. You can take advantage of the regular structure of your grid to speed up the processing tremendously: from the coordinates of a feature's centroid you can mathematically compute the identifier of the grid cell in which it falls. Output a tuple of this identifier and the feature's ...


5

If the map units are in any sort of projected coordinate system, taking input in meters, miles, or beard-seconds should be relatively easy. If the map units are geographic, you probably ought to project them for an operation like this anyhow to make your algorithm easier (the problem with geographic coordinates is that north-south degrees are not the same ...


5

If you want to finecontrol / test this deeper, outside what any framework (jquery/dojo) has to start this. You could try this little library: var stack = [], interval, loaded; // has window.onload fired? function doPoll() { var notFound = []; for (var i=0; i<stack.length; i++) { if (document.getElementById(stack[i].id)) { ...


4

Existing code (in addition to the other answers...not in place of). There's lots of it online in places like Google Projects, Codeplex, & Github. It's interesting to learn from code for projects that are fairly active/in use and have a decent size user community. (Not that you can't learn anything from stale code repositories)


4

Personally I'd use the Python bindings for the Proj4 library - http://pypi.python.org/pypi/pyproj/1.8.6 Further details at http://pyproj.googlecode.com/svn/trunk/README.html You can pass your projection parameters directly to the projection object as follows: PROJ_32756 = """ +proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs """ p1 = ...



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