Add flag to get the extent of the generated map without actually rendering the image.
This commit is contained in:
parent
48d9e0bb42
commit
5534103310
|
@ -208,6 +208,23 @@ void TileGenerator::parseColorsFile(const std::string &fileName)
|
|||
parseColorsStream(in);
|
||||
}
|
||||
|
||||
void TileGenerator::printGeometry(const std::string &input)
|
||||
{
|
||||
string input_path = input;
|
||||
if (input_path[input.length() - 1] != PATH_SEPARATOR) {
|
||||
input_path += PATH_SEPARATOR;
|
||||
}
|
||||
|
||||
openDb(input_path);
|
||||
loadBlocks();
|
||||
|
||||
printf("\nMap extent: %d:%d+%d+%d\n", m_xMin*16, m_zMin*16, (m_xMax - m_xMin+1)*16, (m_zMax - m_zMin+1)*16);
|
||||
|
||||
closeDatabase();
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TileGenerator::generate(const std::string &input, const std::string &output)
|
||||
{
|
||||
string input_path = input;
|
||||
|
|
|
@ -86,6 +86,7 @@ public:
|
|||
void parseColorsFile(const std::string &fileName);
|
||||
void setBackend(std::string backend);
|
||||
void generate(const std::string &input, const std::string &output);
|
||||
void printGeometry(const std::string &input);
|
||||
void setZoom(int zoom);
|
||||
void setScales(uint flags);
|
||||
|
||||
|
|
15
mapper.cpp
15
mapper.cpp
|
@ -28,6 +28,7 @@ void usage()
|
|||
" --max-y <y>\n"
|
||||
" --backend <backend>\n"
|
||||
" --geometry x:y+w+h\n"
|
||||
" --extent\n"
|
||||
" --zoom <zoomlevel>\n"
|
||||
" --colors <colors.txt>\n"
|
||||
" --scales [t][b][l][r]\n"
|
||||
|
@ -80,6 +81,7 @@ int main(int argc, char *argv[])
|
|||
{"noshading", no_argument, 0, 'H'},
|
||||
{"backend", required_argument, 0, 'd'},
|
||||
{"geometry", required_argument, 0, 'g'},
|
||||
{"extent", no_argument, 0, 'E'},
|
||||
{"min-y", required_argument, 0, 'a'},
|
||||
{"max-y", required_argument, 0, 'c'},
|
||||
{"zoom", required_argument, 0, 'z'},
|
||||
|
@ -95,6 +97,7 @@ int main(int argc, char *argv[])
|
|||
TileGenerator generator;
|
||||
int option_index = 0;
|
||||
int c = 0;
|
||||
bool onlyPrintExtent = false;
|
||||
while (1) {
|
||||
c = getopt_long(argc, argv, "hi:o:", long_options, &option_index);
|
||||
if (c == -1) {
|
||||
|
@ -139,6 +142,9 @@ int main(int argc, char *argv[])
|
|||
case 'e':
|
||||
generator.setDrawAlpha(true);
|
||||
break;
|
||||
case 'E':
|
||||
onlyPrintExtent = true;
|
||||
break;
|
||||
case 'H':
|
||||
generator.setShading(false);
|
||||
break;
|
||||
|
@ -206,7 +212,14 @@ int main(int argc, char *argv[])
|
|||
colors = search_colors(input);
|
||||
try {
|
||||
generator.parseColorsFile(colors);
|
||||
generator.generate(input, output);
|
||||
if (onlyPrintExtent)
|
||||
{
|
||||
generator.printGeometry(input);
|
||||
}
|
||||
else
|
||||
{
|
||||
generator.generate(input, output);
|
||||
}
|
||||
} catch(std::runtime_error e) {
|
||||
std::cerr << "Exception: " << e.what() << std::endl;
|
||||
return 1;
|
||||
|
|
|
@ -72,6 +72,10 @@ Use specific map backend; supported: *sqlite3*, *leveldb*, *redis*, *postgresql*
|
|||
.BR \-\-geometry " " \fIgeometry\fR
|
||||
Limit area to specific geometry (*x:y+w+h* where x and y specify the lower left corner), e.g. "--geometry -800:-800+1600+1600"
|
||||
|
||||
.TP
|
||||
.BR \-\-extent " " \fIextent\fR
|
||||
Dont render the image, dust print the extent of the map that would be generated, in the same format as the geometry above.
|
||||
|
||||
.TP
|
||||
.BR \-\-zoom " " \fIfactor\fR
|
||||
Zoom the image by using more than one pixel per node, e.g. "--zoom 4"
|
||||
|
|
Loading…
Reference in New Issue