]> git.street.me.uk Git - andy/viking.git/blame - test/test_metatile.c
Some spelling fixes in a comment
[andy/viking.git] / test / test_metatile.c
CommitLineData
fe2bbf2a
RN
1/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2/*
3 * viking -- GPS Data and Topo Analyzer, Explorer, and Manager
4 *
5 * Copyright (C) 2014, Rob Norris <rw_norris@hotmail.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 *
21 */
22#include <stdio.h>
23#include <stdlib.h>
24#include <unistd.h>
25#include <limits.h>
26#include <string.h>
27#include <sys/types.h>
28#include <sys/stat.h>
29#include <errno.h>
30#include <fcntl.h>
31
32#include <metatile.h>
33
34int main ( int argc, char *argv[] )
35{
36 const int tile_max = METATILE_MAX_SIZE;
37 char err_msg[PATH_MAX];
fe2bbf2a
RN
38 char *buf;
39 int len;
40 int compressed;
41
42 // Could extend to get values from the command-line.
43 int x = 4051;
44 int y = 2753;
45 int z = 13;
46 //char dir[] = "/var/lib/mod_tile/default";
47 char dir[] = "metatile_example";
48 // Example defaults to a metatile that was pre generated using mod_tile
49 // Equates to 'metatile_example/13/0/0/250/220/0.meta'
50 // which is Brownsea Island, Dorset, UK (50.69N, 1.96W)
51
52 buf = malloc(tile_max);
53 if (!buf) {
54 return 1;
55 }
56
57 err_msg[0] = 0;
58
6c91e2ad
RN
59 if ( argc > 1 )
60 len = metatile_read(argv[1], x, y, z, buf, tile_max, &compressed, err_msg);
61 else
62 len = metatile_read(dir, x, y, z, buf, tile_max, &compressed, err_msg);
fe2bbf2a
RN
63
64 if (len > 0) {
65 // Do something with buf
66 // Just dump to a file
67 FILE *fp;
68 if (compressed)
69 fp = fopen( "tilefrommeta.gz" , "w" );
70 else
71 fp = fopen( "tilefrommeta.png" , "w" );
72
73 if ( fp ) {
74 fwrite(buf, 1 , len, fp);
75 fclose(fp);
76 }
77 else
c7b5f90c 78 fprintf(stderr, "Failed to open file because: %s\n", strerror(errno));
fe2bbf2a
RN
79
80 free(buf);
81 return 0;
82 }
83 else
84 fprintf(stderr, "FAILED: %s\n", err_msg);
85
86 free(buf);
87 return 3;
88}