forked from timwaters/mapwarper
-
Notifications
You must be signed in to change notification settings - Fork 0
public map georectifier and warper
License
thomasgwatson/mapwarper
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
README -------- Mapwarper is an open source map geo-rectification, warping and georeferencing application. It enables a user to upload an image, a scanned map or aerial photo for example, and by placing control points on a reference map and the image, to warp it, to stretch it to fit. The application can be seen in use at http://mapwarper.net for public use and in library setting at http://maps.nypl.org The application is a web based crowdsourced geospatial project that enables people and organisations to collaboratively publish images of maps online and digitize and extract vector information from them. Users rectify, warp or stretch images of historical maps with a reference basemap, assigning locations on image and map that line up with each other. Often these historical maps were in big paper books, and so for the first time they can be stitched together and shown as a whole, in digital format. Users can crop around the maps, and join them together into layers. By georeferencing the images, they can be warped or georectified to match the locations in space, and used in GIS software and other services. One such use of these warped maps is an application that that helps people digitize, that is, trace over the maps to extract information from them. For example, buildings in 18th Century Manhattan, details changing land use, building type etc. This application is called the Digitizer. The application runs as a Ruby on Rails application using a number of open source geospatial libraries and technologies, including PostGIS, Mapserver, Geoserver, and GDAL tools. The resulting maps can be exported as a PNG, GeoTIFF, WMS, Tiles, and KML for use in many different applications. Groups of maps can be made into "layers" that will stictch together the composite map images. There is also a vector digitizer application that works on layers also. It uses the WFS-V protocol and so geoserver is needed for this. SETUP ------ This application is a bit peculiar to set up, sorry! I do intend to moderise it. One of things is that it doesn't like modern rubygems but 1.7.2 is fine. Blame the way Ruby has great backwards compatibilties, then revel in the power of rvm, this message and the following documentation! Some things you may need to set up first: libgdal-ruby is used to get the raster extents to update the bounding box of a warped map config/deploy.rb for capistrano users, change this as fits. Have a look and see how it works with shared paths, to save mapserver map files and images between deploys. gdal - needs to be installed, again FWTOOLS good. the path to the gdal executable directory can be added / changed in config/environments/production.rb and/or development.rb if It cannot find it on the PATH. libmapscript-ruby also needed. Versions - from ubuntuGIS libmapscript-ruby version 5.6.6-2~lucid1 gdal-bin version 1.7.3-2~lucid1 Some files you will need to put manually there, and capistrano copies across to the correct place, basically enables the code not to have site specific stuff in svn. config/initializers/session_store.rb.example into shared/config/session_store.rb config/initializers/mail.rb. put mail.rb into shared/config folder config/environments/production.rb again, into shared/config folder config/database.yml.production into shared/config folder see deploy.rb for details create folders shared/system/mapimages/src and /dst and /dst/png (or if you are not using capistrano, public/mapimages/src public/mapimages/dst public/mapimages/dst/png) database - standard rails db migrate should do the trick - mysql or sqlite3 should make sure you login as the admin set up in the migration 010 and use this to create a new user, and use this to disable this initial default admin be fine. Change the database.example file to your database.yml imagemagick required for paperclip and thumbnail handling.... legacy import from older warper with mapscans you can use the custom rake command RAILS_ENV=development rake legacy:migrate --trace --------- replace GOOGLE_MAPS_KEY in production.rb to your own Other optional config options put in you environment files MAX_DIMENSION = 2000 #max dimension width or height for an upload. Otherwise it will get resized to fit this max size MAX_ATTACHMENT_SIZE = 5.megabyte #max upload file size GDAL_MEMORY_LIMIT = 20 # max memory used for gdal_warp, may keep some servers sweet if you comment these out, then no constraints are used -- tim waters (tim_at_geothings.net) --- This may help you even more: gem list on a server: actionmailer (2.3.5) actionpack (2.3.5) activerecord (2.3.5) activeresource (2.3.5) activesupport (2.3.5) fastercsv (1.5.5) georuby (2.0.0) hpricot (0.8.6) i18n (0.6.1, 0.4.2) passenger (4.0.3) multi_json (1.7.3) nokogiri (1.5.9) oauth (0.4.7) pg (0.15.1) rack (1.0.1) rails (2.3.5) rake (0.9.2.2) yahoo-geoplanet (0.2.1) notes on getting it running in RVM *. use an old version of rubygems (as we need old version of rake) - see below *. specify vgem install nokogiri -v=1.5.5 (as newer versions of nokogiri require ruby 1.9) *. mapscript- you have to have installed libmapscript-ruby1.8 system wide anyway, and then copy (or possibly link) the .so file into the ruby load path of the rmv ruby. * find where mapscript library lives dpkg -L libmapscript-ruby1.8 * find the ruby load paths in rhte rvm ruby -e 'puts $LOAD_PATH' * copy it across * copy usr/lib/ruby/1.8/x86_64-linux/mapscript.so /home/tim/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/x86_64-linux/ * gdal - do the same with gdal - copy the library across cp /usr/lib/ruby/1.8/x86_64-linux/gdal /home/tim/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/x86_64-linux/ -r example command history for install 81 2013-05-25 16:11:04 sudo apt-get install gdal-bin 82 2013-05-25 16:11:49 sudo apt-get install libgdal-ruby 83 2013-05-25 16:12:03 ruby -v 84 2013-05-25 16:12:17 sudo apt-get install libmapscript-ruby 86 2013-05-25 16:13:55 sudo apt-get install python-software-properties 87 2013-05-25 16:14:14 sudo apt-add-repository ppa:ubuntugis/ppa 88 2013-05-25 16:14:30 sudo apt-get update 89 2013-05-25 16:14:54 sudo apt-get install postgresql-9.1-postgis 90 2013-05-25 16:16:51 psql -l 91 2013-05-25 16:16:59 sudo passwd postgres 103 2013-05-25 16:22:05 sudo -i -u postgres creatuser $USER 115 2013-05-25 16:25:01 sudo su postgres 116 2013-05-25 16:26:37 psql 117 2013-05-25 16:26:43 sudo su postgres 118 2013-05-25 16:26:57 psql 119 2013-05-25 16:28:14 ruby -v 120 2013-05-25 16:28:24 apt-cache search ruby1.0-dev 121 2013-05-25 16:28:29 apt-cache search ruby1.9-dev 122 2013-05-25 16:28:35 apt-cache search ruby-dev 123 2013-05-25 16:28:54 sudo apt-get install build-essential 127 2013-05-25 16:31:02 sudo apt-get install apache2 129 2013-05-25 16:31:45 sudo apt-get install imagemagick 132 2013-05-25 17:00:36 sudo service apache2 restart 136 2013-05-25 17:24:49 gem list 137 2013-05-25 17:25:00 sudo gem install rails -v=2.3.5 138 2013-05-25 17:29:33 gem install yahoo-geoplanet 139 2013-05-25 17:29:52 sudo gem install yahoo-geoplanet 140 2013-05-25 17:30:31 sudo gem install nokogiri 141 2013-05-25 17:30:46 sudo apt-get install libxml2 142 2013-05-25 17:31:26 sudo apt-get install libreadline-ruby1.8 libruby1.8 libopenssl-ruby 143 2013-05-25 17:31:33 sudo apt-get install libxslt-dev libxml2-dev 144 2013-05-25 17:31:53 sudo gem install nokogiri 145 2013-05-25 17:33:45 gem instal georuby 146 2013-05-25 17:33:51 sudo gem install georuby 147 2013-05-25 17:34:12 sudo gem instal pg 148 2013-05-25 17:35:32 sudo apt-get install libpq-dev 149 2013-05-25 17:37:31 sudo gem instal pg 150 2013-05-25 17:37:43 sudo gem install pg Rubygems 234 2013-05-26 15:29:03 wget http://production.cf.rubygems.org/rubygems/rubygems-1.7.2.tgz 235 2013-05-26 15:29:13 tar xzvf rubygems-1.7.2.tgz 236 2013-05-26 15:29:28 sudo apt-get remove rubygems 237 2013-05-26 15:29:48 cd rubygems-1.7.2 238 2013-05-26 15:29:54 sudo ruby setup.rb 239 2013-05-26 15:30:18 sudo ln -s /usr/bin/gem1.8 /usr/bin/gem 153 2013-05-25 17:38:15 mkidr warper_dev 154 2013-05-25 17:38:21 mkdir warper_dev 156 2013-05-25 17:38:49 git clone git://github.com/timwaters/mapwarper.git 166 2013-05-25 17:41:54 vim config/initializers/session_store.example 167 2013-05-25 17:42:29 ls config/initializers/ 168 2013-05-25 17:42:35 ls 169 2013-05-25 17:42:38 mv session_store.rb config/initializers/ 170 2013-05-25 17:42:54 cp config/initializers/mail.example config/initializers/mail.rb 171 2013-05-25 17:42:58 cd config/initializers/mail.rb 172 2013-05-25 17:43:03 vim config/initializers/mail.rb 173 2013-05-25 17:43:35 cp config/environments/production.example config/environments/production.rb 174 2013-05-25 17:43:42 vim config/environments/production.rb 175 2013-05-25 17:44:20 cp config/database.example config/database.yml 176 2013-05-25 17:44:33 mkdir public/mapimages 177 2013-05-25 17:44:40 mkdir public/mapimages/src 178 2013-05-25 17:44:42 mkdir public/mapimages/dst 179 2013-05-25 17:44:44 mkdir public/mapimages/dst/png 180 2013-05-25 17:45:11 vim config/database.yml 181 2013-05-25 17:46:03 rake -T 182 2013-05-25 17:46:06 ls 183 2013-05-25 17:46:23 more Rakefile 184 2013-05-25 17:46:42 apt-cache search rake 185 2013-05-25 17:46:46 gem list 190 2013-05-25 17:48:18 sudo gem install rake -v=0.9.2.2 191 2013-05-25 17:48:36 sudo gem uninstall rake 192 2013-05-25 17:48:43 rake --version 193 2013-05-25 17:48:49 rake -T 194 2013-05-25 17:49:19 sudo gem install fastercsv -v=1.5.5 195 2013-05-25 17:49:33 rake -T 196 2013-05-25 17:49:45 rake -T db 197 2013-05-25 17:49:58 rake db:create 198 2013-05-25 17:50:15 psql -l 199 2013-05-25 17:51:01 psql -d warper_hack 200 2013-05-25 17:51:32 rake db:migrate 201 2013-05-25 17:52:17 sudo gem install oauth -v=0.4.7 202 2013-05-25 17:52:29 rake db:migrate 203 2013-05-25 17:53:28 script/console 204 2013-05-25 17:53:41 script/server 205 2013-05-25 17:56:06 vim /etc/apache2/sites-enabled/ 206 2013-05-25 17:57:01 sudo vim /etc/apache2/sites-available/warper_hack 207 2013-05-25 18:00:12 ls /etc/apache2/mods-enabled/ 208 2013-05-25 18:00:43 ls /etc/apache2/mods-available/ 209 2013-05-25 18:00:55 sudo a2enmod proxy 210 2013-05-25 18:01:01 sudo a2enmod proxy_http 311 2013-05-26 16:02:17 sudo gem install passenger 312 2013-05-26 16:03:05 sudo passenger-install-apache2-module 313 2013-05-26 16:03:32 apt-get install libcurl4-openssl-dev or libcurl4-gnutls-dev 314 2013-05-26 16:03:42 sudo apt-get install libcurl4-openssl-dev or libcurl4-gnutls-dev 315 2013-05-26 16:03:52 sudo apt-get install libcurl4-openssl-dev 316 2013-05-26 16:04:21 sudo apt-get install apache2-threaded-dev 317 2013-05-26 16:04:52 sudo apt-get install libapr1-dev 318 2013-05-26 16:05:02 sudo apt-get install libaprutil1-dev 319 2013-05-26 16:05:08 sudo passenger-install-apache2-module 325 2013-05-26 16:09:46 sudo vim /etc/apache2/mods-available/passenger.conf 326 2013-05-26 16:09:59 sudo vim /etc/apache2/mods-available/passenger.load 212 2013-05-25 18:01:47 sudo service apache2 restart 213 2013-05-25 18:01:51 ls /etc/apache2/mods-enabled/ 214 2013-05-25 18:02:15 ls /etc/apache2/sites-available/ 215 2013-05-25 18:02:25 sudo a2ensite warper_hack 216 2013-05-25 18:02:30 sudo service apache2 restart 217 2013-05-25 18:02:37 script/server 218* 2013-05-25 18:03:07 more /etc/apache2/sites-enabled/ 219 2013-05-25 18:03:11 script/server 220 2013-05-25 18:03:54 sudo a2dissite 000-default 221 2013-05-25 18:03:58 sudo service apache2 restart 222 2013-05-25 18:04:02 script/server sudo gem install i18n -v=0.4.2
About
public map georectifier and warper
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- JavaScript 88.1%
- CSS 5.6%
- Ruby 4.2%
- Python 2.1%