Ejemplo n.º 1
0
def create_merc_elevmap(dest):
    zoomlevel = 8
    limitx1, limity1, limitx2, limity2 = merc_limits(zoomlevel, hd=True)
    tilesizemask = tilesize - 1

    #a,b=mapper.latlon2merc((61,15),zoomlevel)
    #limitx1,limity1=int(a),int(b)

    #limity1=int(19000)
    #limity2=limity1+tilesize*16
    #limitx1=int(35000)
    #limitx2=limitx1+tilesize*16
    #tilesizemask=tilesize-1
    #limitx1&=~tilesizemask
    #limity1&=~tilesizemask
    #limitx2&=~tilesizemask
    #limity2&=~tilesizemask

    assert (limitx1 & tilesizemask) == 0
    assert (limity1 & tilesizemask) == 0
    assert (limitx2 & tilesizemask) == 0
    assert (limity2 & tilesizemask) == 0
    if os.path.exists(dest):
        os.unlink(dest)
    blob = BlobFile(dest,
                    zoomlevel,
                    limitx1,
                    limity1,
                    limitx2,
                    limity2,
                    "w",
                    tilesize=tilesize)
    for by in xrange(limity1, limity2, tilesize):
        for bx in xrange(limitx1, limitx2, tilesize):
            f = StringIO()
            for y in xrange(tilesize):
                for x in xrange(tilesize):
                    mx = bx + x
                    my = by + y
                    latlon = mapper.merc2latlon((mx, my), zoomlevel)
                    elev = int(get_terrain_elev(latlon))
                    #f.write(pack(">h",elev)) #min
                    f.write(pack(">h", elev))  #max
            buf = f.getvalue()
            assert (len(buf) == tilesize * tilesize * 2)
            blob.add_tile(bx, by, buf)
            print "Perc complete: %.1f%%" % (100.0 * (by - limity1) /
                                             float(limity2 - limity1))
    blob.close()
Ejemplo n.º 2
0
def create_merc_elevmap(dest):
    zoomlevel = 8
    limitx1, limity1, limitx2, limity2 = merc_limits(zoomlevel, hd=True)
    tilesizemask = tilesize - 1

    # a,b=mapper.latlon2merc((61,15),zoomlevel)
    # limitx1,limity1=int(a),int(b)

    # limity1=int(19000)
    # limity2=limity1+tilesize*16
    # limitx1=int(35000)
    # limitx2=limitx1+tilesize*16
    # tilesizemask=tilesize-1
    # limitx1&=~tilesizemask
    # limity1&=~tilesizemask
    # limitx2&=~tilesizemask
    # limity2&=~tilesizemask

    assert (limitx1 & tilesizemask) == 0
    assert (limity1 & tilesizemask) == 0
    assert (limitx2 & tilesizemask) == 0
    assert (limity2 & tilesizemask) == 0
    if os.path.exists(dest):
        os.unlink(dest)
    blob = BlobFile(dest, zoomlevel, limitx1, limity1, limitx2, limity2, "w", tilesize=tilesize)
    for by in xrange(limity1, limity2, tilesize):
        for bx in xrange(limitx1, limitx2, tilesize):
            f = StringIO()
            for y in xrange(tilesize):
                for x in xrange(tilesize):
                    mx = bx + x
                    my = by + y
                    latlon = mapper.merc2latlon((mx, my), zoomlevel)
                    elev = int(get_terrain_elev(latlon))
                    # f.write(pack(">h",elev)) #min
                    f.write(pack(">h", elev))  # max
            buf = f.getvalue()
            assert len(buf) == tilesize * tilesize * 2
            blob.add_tile(bx, by, buf)
            print "Perc complete: %.1f%%" % (100.0 * (by - limity1) / float(limity2 - limity1))
    blob.close()