Файл example.mif:
Код: Выделить всё
Version 300
Charset "WindowsCyrillic"
Delimiter ","
Index 5
CoordSys Earth Projection 6, 1001, "km", 100, 54, 47, 62, 0, 0 Bounds (-20577.3399667, -15988.1585194) (20577.3399667, 25166.521414)
Columns 9
ID Integer
RUS_RAYON Char(35)
OLD_NAME Char(35)
ENG_RAYON Char(35)
BELONG_TO Integer
Oblast Char(35)
POPULATION Float
URBAN Float
RURAL Float
Data
Region 1 #число полигонов
441 #число точек полигона
1609.66209 2237.75208 #пары координат
1609.85749 2239.16405
.... ...
1609.66209 2237.75208
Pen (1,2,0)
Brush (2,16776960,16777215)
Center 1791.93829 2179.86816 #координаты центра
Region 2
248
x0 y0
x1 y1
... ...
x246 y246
x0 y0
45
x0 y0
x1 y1
... ...
x43 y43
x0 y0
Pen (1,2,0)
Brush (2,16776960,16777215)
Center x y
Файл example.mid:
Код: Выделить всё
# ID,RUS_RAYON,OLD_NAME,ENG_RAYON,BELONG_TO,Oblast,POPULATION,URBAN,RURAL
5801,"Абыйский р.","","Abyiskiy",16,"",5.9,3.4,2.5
5803,"Аллаиховский р.","","Allaikhovskiy",16,"",5.2,3.9,1.3
Должен получиться файл example.xml:
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<map numregs=2>
<attributes num=9>
ID,RUS_RAYON,OLD_NAME,ENG_RAYON,BELONG_TO,Oblast,POPULATION,URBAN,RURAL
</attributes>
<region id=5801 numpols=1>
<RUS_RAYON>Абыйский р.</RUS_RAYON>
<OLD_NAME>null</OLD_NAME>
<ENG_RAYON>Abyiskiy</ENG_RAYON>
<BELONG_TO>16</BELONG_TO>
<Oblast>null</Oblast>
<POPULATION>5.9</POPULATION>
<URBAN>3.4</URBAN>
<RURAL>2.5</RURAL>
<Center>1791.93829 2179.86816</Center>
<polygon numpoints=441>
<coords>1609.66209 2237.75208,x1 y1, ... ,1609.66209 2237.75208</coords>
</polygon>
</region>
<region id=5803 numpols=2>
<RUS_RAYON>Аллаиховский р</RUS_RAYON>
<OLD_NAME>null</OLD_NAME>
<ENG_RAYON>Allaikhovskiy</ENG_RAYON>
<BELONG_TO>16</BELONG_TO>
<Oblast>null</Oblast>
<POPULATION>5.2</POPULATION>
<URBAN>3.9</URBAN>
<RURAL>1.3</RURAL>
<Center>x y</Center>
<polygon numpoints=248>
<coords>x0 y0,x1 y1, ... ,x0 y0</coords>
</polygon>
<polygon numpoints=45>
<coords>x0 y0,x1 y1, ... ,x0 y0</coords>
</polygon>
</region>
</map>
Совсем по уму, в процессе надо ещё пересчитывать координаты в экранные исходя из (maxX,maxY), (minX,minY) и заданных размеров окна (алгоритм уже есть и опробован).
Собственно, вопрос: на чём скрипт писать? Варианты: bash + стандартные консольные инструменты, php, Perl. Bash знаю на базовом уровне, на php когда-то писал, но сильно подзабыл, про Perl знаю, что он есть и многие считают его удобным для таких вещей. Так что в любом случае что-то надо штудировать, вопрос что оптимально?