Animation examples

View: New views
3 Messages — Rating Filter:   Alert me  

Animation examples

by Philip Stubbs-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have been having some fun with doing an animation.
http://www.youtube.com/watch?v=mxcTimoiX30

I am having trouble getting my head round a decent algorithm to
provide a sooth zoom or pan type action. Unfortunately my programming
skills are limited, and find it easier to build on other examples than
start from scratch. Does anybody know of any animation scripts that
work well with Mapnik?

--
Philip Stubbs
_______________________________________________
Mapnik-users mailing list
Mapnik-users@...
https://lists.berlios.de/mailman/listinfo/mapnik-users

Re: Animation examples

by Artem Pavlenko-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Excellent visualisation of alien craft landing! Seriously, great to see how label collision work through different zoom levels, very cool.

2009/11/6 Philip Stubbs <philip@...>
I have been having some fun with doing an animation.
http://www.youtube.com/watch?v=mxcTimoiX30

I am having trouble getting my head round a decent algorithm to
provide a sooth zoom or pan type action. Unfortunately my programming
skills are limited, and find it easier to build on other examples than
start from scratch. Does anybody know of any animation scripts that
work well with Mapnik?

Not sure. If you find some please let us know!
Cheers
Artem

 
--
Philip Stubbs
_______________________________________________
Mapnik-users mailing list
Mapnik-users@...
https://lists.berlios.de/mailman/listinfo/mapnik-users


_______________________________________________
Mapnik-users mailing list
Mapnik-users@...
https://lists.berlios.de/mailman/listinfo/mapnik-users

Parent Message unknown Fwd: Animation examples

by Philip Stubbs-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/11/6 Artem Pavlenko <artem@...>:

> Excellent visualisation of alien craft landing! Seriously, great to see how
> label collision work through different zoom levels, very cool.
>
> 2009/11/6 Philip Stubbs <philip@...>
>>
>> I have been having some fun with doing an animation.
>> http://www.youtube.com/watch?v=mxcTimoiX30
>>
>> I am having trouble getting my head round a decent algorithm to
>> provide a sooth zoom or pan type action. Unfortunately my programming
>> skills are limited, and find it easier to build on other examples than
>> start from scratch. Does anybody know of any animation scripts that
>> work well with Mapnik?
>>
> Not sure. If you find some please let us know!
> Cheers
> Artem

Well I did not find any either. Not that I looked very hard. I have
however had another stab on my own, and think this is much closer to
what I was expecting to see.

http://www.youtube.com/watch?v=-bc50sC8adM

For any that are interested, here is the script that I used.

#!/usr/bin/python

from mapnik import *
import math, sys, os

if __name__ == "__main__":
   try:
       mapfile = os.environ['MAPNIK_MAP_FILE']
   except KeyError:
       mapfile = "osm.xml"
   map_uri = "image.png"

   #---------------------------------------------------
   #  Change this to the bounding box you want
   #
   ll_start = (-6.5, 49.5, 2.1, 59)
   ll_finish = (-1.227, 50.812, -1.222, 50.815)
   ll = [-180.0, -90.0, 180.0, 90.0]
   #---------------------------------------------------

   NumFrames = 600
   z = 15
   f = 1.0
   imgx = 1280
   imgy = 720

   m = Map(imgx,imgy)
   load_map(m,mapfile)
   prj = Projection("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs
+over")
   for i in range(1,NumFrames+1):
       for j in range(0,4):
           if i == 1:
               ll[j] = ll_start[j]
           else:
               ll[j] = ll_finish[j]+((ll[j]-ll_finish[j])*f)
               if f > 0.98:
                   f = f - 0.0001
       c0 = prj.forward(Coord(ll[0],ll[1]))
       c1 = prj.forward(Coord(ll[2],ll[3]))
       bbox = Envelope(c0.x,c0.y,c1.x,c1.y)
       m.zoom_to_box(bbox)
       print "About to render frame %d at %0.3f, %0.3f, %0.3f, %0.3f"
% (i, ll[0], ll[1], ll[2], ll[3])
       map_uri = "frames2/image%03d.png" % (i)
       render_to_file(m, map_uri, 'png')


--
Philip Stubbs
_______________________________________________
Mapnik-users mailing list
Mapnik-users@...
https://lists.berlios.de/mailman/listinfo/mapnik-users