Hot answers tagged

21

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 ...


18

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 ...


15

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 ...


12

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 = ...


11

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. ...


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 ...


11

Some geospatial scripting languages: 1) Python/Jython Python/Jython alone: Python and Jython can be used alone for processing geospatial data without any software, using modules like osgeo (GDAL / OGR), PySAL, Shapely, Fiona, Pyshp,..., see Python Package Index, Topic:GIS or Geoscript (Jython). There are many examples on GST as scripting language in ...


10

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.


10

Maybe QGIS "Profile" plugin source code can be a start.


10

If you're into open source GIS, I would recommend FOSS4G, 6-9 September in Madrid Barcelona this year. You have another week or so to submit an academic paper if you want to present.


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

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

Go with 2010. I don't know any reason you'd pick 2008 over 2010 if you're developing with ArcGIS 10.


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

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", ...


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 ...


7

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'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

Two mapping websites built on ruby on rails I recommend: OpenStreetMap NYPL Map Rectifier


6

The following script will do the job with GDAL and Python: import os, sys import ogr from math import ceil def main(outputGridfn,xmin,xmax,ymin,ymax,gridHeight,gridWidth): # convert sys.argv to float xmin = float(xmin) xmax = float(xmax) ymin = float(ymin) ymax = float(ymax) gridWidth = float(gridWidth) gridHeight = ...


6

Old school GIS without computers. lang-none Overlay acetate on paper maps, buffer with rulers, symbolize with dry-erase markers. No computers, so no language needed.


6

If you go to the home page of ArcScripts you are greeted with this message: ArcScripts are Moving We at ESRI thank you all for your valuable contribution to ArcScripts over the years. This Web site has been most valuable for the user community to share a multitude of tools; however, this application has become outdated. We have brand new Code ...


5

try SharpMap. Not written in C++ but in C#. Maybe it could be some use to you.


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

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

Don't use a personal geodatabase without good reason. In our experience they are consistently much slower than all other forms of esri data storage (ref). Though I have read one report here on GIS.se that saw faster personal than file gdb. When the workflow consists of many small iterations the call to create the geoprocessor and check out a license is ...


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

TLDR; The advantage of using ruby for GIS is ruby itself. Once you learn how to do CRS transformations with it, using rgeo is a breeze with squeel. I've found working with the rgeo gem very pleasant. To the contrary of nearly every other answer for this question, I would say its definitely worth looking into if you are familiar with ruby. If you're not, I'd ...


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 ...



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