Il s'agit de la commande mkgmap-splitter qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
mkgmap-splitter - séparateur de tuiles pour mkgmap
SYNOPSIS
mkgmap-splitter [Options] fichier.osm > séparateur.log
DESCRIPTION
mkgmap-splitter divise un fichier .osm qui contient de grandes régions bien mappées en un nombre
de tuiles plus petites, pour s'adapter à la taille maximale utilisée pour le format de cartes Garmin. Là
au moins deux étapes de traitement sont nécessaires. La première étape consiste à calculer quelle surface
chaque tuile doit couvrir, en fonction de la distribution des nœuds. La deuxième étape écrit
les nœuds, les chemins et les relations du fichier .osm d'origine dans un fichier .osm plus petit
fichiers, un pour chaque zone qui a été calculée à la première étape. Avec option
--keep-complete=true, deux étapes supplémentaires sont utilisées pour éviter les chemins brisés et les polygones.
Les deux caractéristiques les plus importantes sont :
· Tuiles de taille variable pour éviter un grand nombre de fichiers minuscules.
· Les carreaux se joignent exactement sans chevauchement ni espace.
Vous aurez besoin de beaucoup de mémoire sur votre ordinateur si vous avez l'intention de diviser une grande surface. Quelques
les options permettent de configurer la quantité de mémoire dont vous avez besoin. Avec les paramètres par défaut, vous avez besoin
environ 4-5 octets pour chaque nœud et chemin. Cela ne semble pas beaucoup mais il y en a environ 1700
millions de nœuds dans l'ensemble du fichier planète et vous ne pouvez donc pas traiter toute la planète en un seul
passer le fichier sur une machine 32 bits à l'aide de cet utilitaire car l'espace de tas Java maximal est de 2G. Ce
est possible avec java 64 bits et environ 7 Go de tas ou avec plusieurs passes.
L'extrait Europe de Cloudmade ou Geofabrik peut être traité dans la limite 2G si vous
avoir une mémoire suffisante. Avec les options par défaut, l'Europe est divisée en environ 750 tuiles.
L'extrait Europe fait environ la moitié de la taille du fichier planète complet.
D'un autre côté, un seul pays, même bien cartographié comme l'Allemagne ou le Royaume-Uni,
être possible sur une machine modeste, voire un netbook.
UTILISATION
Splitter nécessite Java 1.6 ou supérieur. L'utilisation de base est la suivante.
mkgmap-splitter fichier.osm > séparateur.log
Si vous avez moins de 2 Go de mémoire sur votre ordinateur, vous devez réduire la -Xmx option par
définir la variable d'environnement JAVA_OPTS.
JAVA_OPTS="-Xmx512m" mkgmap-splitter fichier.osm > séparateur.log
Cela produira un certain nombre de fichiers .osm.pbf qui peuvent être lus par mkgmap(1). Il y a
aussi d'autres fichiers produits :
Le modèle.args fichier est un fichier qui peut être utilisé avec le -c option de mkgmap cela va
compiler tous les fichiers. Vous pouvez l'utiliser tel quel ou vous pouvez le copier et le modifier pour inclure
vos propres options. Par exemple, au lieu que chaque description soit "OSM Map", cela pourrait être "NW
Ecosse" selon le cas.
Le zones.liste fichier est la liste des cadres de délimitation qui ont été calculés. Si tu veux toi
peut l'utiliser lors d'un appel ultérieur le séparateur en utilisant le --diviser le fichier option à utiliser
exactement les mêmes zones que la dernière fois. Cela peut être utile si vous produisez régulièrement une carte
et voulez garder les zones de tuiles les mêmes d'un mois à l'autre. Il est également utile d'éviter
le temps qu'il faut pour régénérer le fichier à chaque fois (actuellement environ un tiers de l'ensemble
temps nécessaire pour effectuer le fractionnement). Bien sûr, si la carte s'agrandit suffisamment pour que l'une des tuiles
débordements, vous devrez recalculer les surfaces à nouveau.
Le zones.poly fichier contient le polygone de délimitation des zones calculées. Voir l'option
--polygone-fichier comment cela peut être utilisé.
Le densités-out.txt le fichier est écrit lorsqu'aucun fichier divisé n'est fourni et contient un débogage
information seulement.
Vous pouvez également utiliser un fichier .osm compressé au format gzip ou bz2 comme fichier d'entrée. Noter que
cela peut ralentir considérablement le splitter (particulièrement vrai pour bz2) car
décompresser le fichier .osm peut prendre beaucoup de puissance CPU. Si vous êtes susceptible d'être
traiter un fichier plusieurs fois, vous feriez probablement mieux de convertir le fichier en l'un des
les formats binaires pbf ou o5m. Le format o5m est plus rapide à lire, mais nécessite plus d'espace
sur le disque.
OPTIONS
Il existe un certain nombre d'options pour affiner les choses que vous voudrez peut-être essayer.
--borne-tags=un magnifique
Une liste de valeurs de balises séparées par des virgules pour les relations. Utilisé pour filtrer le multipolygone
et les relations limites pour le traitement des listes de problèmes. Voir aussi l'option
--niveau-administrateur-recherché. Par défaut : use-exclude-list
--cache=un magnifique
Obsolète, maintenant ne fait rien
--description=un magnifique
Définit la description à écrire dans le modèle.args fichier.
--geonames-file=un magnifique
Le nom d'un fichier GeoNames à utiliser pour déterminer les noms des tuiles. Typiquement
villes15000.zip des géonomshttp://download.geonames.org/export/dump.
--keep-complete=booléen
Utilisez --keep-complete=false pour désactiver deux phases de programme supplémentaires entre le
split et la phase de distribution finale (non recommandé). La première phase, appelée
gen-problem-list, détecte tous les chemins et relations qui traversent les frontières de
un ou plusieurs fichiers de sortie. La deuxième phase, appelée handle-problem-list, collecte
les coordonnées de ces voies et relations et calcule tous les fichiers de sortie qui
sont croisées ou fermées. Les informations sont transmises à la phase finale de dist dans
trois fichiers temporaires. Cela évite les polygones cassés, mais sachez que cela nécessite
de lire les fichiers d'entrée au moins deux fois supplémentaires.
Ne le spécifiez pas avec --chevauchement sauf si vous avez une bonne raison de le faire.
Valeur par défaut : vrai
--mapid=int
Définissez le nom de fichier pour les fichiers divisés. Dans l'exemple, le premier fichier sera appelé
63240001.osm.pbf et le prochain sera 63240002.osm.pbf etc.
Par défaut: 63240001
--max-zones=int
Le nombre maximum de zones pouvant être traitées en un seul passage pendant la
deuxième étape du traitement. Il doit s'agir d'un nombre compris entre 1 et 4096. Nombres supérieurs
signifie moins de passages sur le fichier source et donc un traitement global plus rapide, mais
nécessitent également plus de mémoire. Si vous constatez que vous manquez de mémoire mais que vous ne voulez pas
pour augmenter vos --max-nœuds valeur, essayez de la réduire à la place. Changer cela va
n'ont aucun effet sur le résultat de la scission, c'est uniquement pour vous permettre d'échanger de la mémoire
pour les performances. Notez que la première étape du traitement a une mémoire fixe
surcharge quelle que soit la valeur définie, donc si vous manquez de mémoire
avant la zones.liste est généré, vous devez soit augmenter votre -Xmx
valeur ou réduisez la taille du fichier d'entrée que vous essayez de diviser.
Par défaut: 512
--max-noeuds=int
Le nombre maximal de nœuds pouvant se trouver dans l'un des fichiers résultants. Le défaut
est assez conservateur, vous pouvez l'augmenter considérablement avant d'obtenir une carte
messages trop gros. Peu d'expérimentations ont été faites. Aussi plus c'est gros
valeur, moins la mémoire est requise pendant la phase de division.
Par défaut: 1600000
--max-threads=Plus-value
Le nombre maximum de threads utilisés par mkgmap-splitter.
Par défaut : 4 (auto)
--mixte=booléen
Spécifiez ceci si le fichier osm d'entrée a des nœuds, des chemins et des relations entremêlés ou
les identifiants ne sont pas strictement triés. Pour augmenter les performances, utilisez le osmose sort
la fonction.
Par défaut: false
--no-trim=booléen
Ne coupez pas l'espace vide sur les bords des carreaux. Cette option est ignorée lorsque
--polygone-fichier est utilisé.
Par défaut: false
--num-tuiles=Plus-valueun magnifique
Une valeur cible qui est utilisée lorsqu'aucun fichier fractionné n'est fourni. Le fractionnement est fait de sorte que
le nombre donné de tuiles est produit. Les --max-nœuds la valeur est ignorée si cette
option est donnée.
--sortie=un magnifique
Le format dans lequel les fichiers de sortie sont écrits. Les valeurs possibles sont xml, pbf,
o5m, et simuler. La valeur par défaut est pbf, qui produit les plus petites tailles de fichier.
Le format o5m est plus rapide à écrire, mais crée des fichiers environ 40 % plus volumineux. Les
l'option de simulation est à des fins de débogage.
--rép-sortie=chemin
Le répertoire dans lequel splitter doit écrire les fichiers de sortie. Si le spécifié
le chemin vers un répertoire n'existe pas, mkgmap-splitter essaie de le créer. Par défaut à
le répertoire de travail courant.
--chevauchement=un magnifique
Obsolète depuis r279. Avec --keep-complete=false, mkgmap-splitter devrait inclure
nœuds à l'extérieur de la boîte englobante, de sorte que mkgmap peut soigneusement recadrer exactement au
frontière. Ce paramètre contrôle la taille de ce chevauchement. C'est en unités de carte, un
la valeur par défaut de 2000 est utilisée, ce qui signifie environ 0.04 degré de latitude ou de longitude.
If --keep-complete=true est actif et --chevauchement est donné, un avertissement sera imprimé
car cette combinaison a rarement du sens.
--polygone-desc-fichier=chemin
Un fichier osm (.o5m, .pbf, .osm) avec des manières nommées qui décrivent les polygones englobants avec
Manières OSM ayant des tags name et mapid.
--polygone-fichier=chemin
Le nom d'un fichier contenant un polygone de délimitation au format de fichier de polygone d'osmose
. mkgmap-splitter utilise ce fichier lors du calcul des surfaces. Il calcule d'abord
une grille utilisant la donnée --résolution. Le fichier d'entrée est lu et pour chaque nœud, un
compteur est augmenté pour la zone de grille correspondante. Si le fichier d'entrée contient un
boîte englobante, ceci est appliqué à la grille de sorte que les nœuds en dehors de la boîte englobante
sont ignorés. Ensuite, si spécifié, le polygone de délimitation est utilisé pour mettre à zéro ces grilles
éléments en dehors de la zone du polygone englobant. Si la (les) zone(s) du polygone décrit(s)
une zone rectiligne ne dépassant pas 40 sommets, mkgmap-splitter essaiera de
créer des fichiers de sortie qui correspondent exactement à la zone, sinon il se rapprochera
la zone du polygone avec des rectangles.
--precomp-sea=chemin
Le nom d'un répertoire contenant des tuiles marines précompilées. Si donné, mkgmap-
séparateur utilisera les tuiles de mer précompilées de la même manière que mkgmap Est-ce que. Utilisation
ceci si vous souhaitez utiliser un fichier polygone ou --no-trim=vrai et mkgmap crée vide
*.img combinés avec un message commençant par "Il n'y a pas assez de place dans un seul
carte garmin pour toutes les données d'entrée".
--fichier-problème=chemin
Le nom d'un fichier contenant des chemins et des relations connus pour causer des problèmes
dans le processus de division. Utilisez cette option si --garder-complet demande trop de temps ou
mémoire et --chevauchement ne résout pas votre problème.
Syntaxe du fichier problème :
manière: # commenter...
rel : # commenter...
Exemple:
façon:2784765 # Ferry Guernesey - Jersey
--problème-rapport=chemin
Le nom d'un fichier pour écrire la liste de problèmes générée créée avec
--garder-complet. Le paramètre est ignoré si --keep-complete=false. Vous pouvez réutiliser
ce fichier avec le --problème-fichier paramètre, mais ne le faites que si vous utilisez le même
valeurs pour --max-nœuds et --résolution.
--résolution=int
La résolution de la carte de densité produite lors de la première phase. Une valeur entre
1 et 24. La valeur par défaut est 13. Augmenter la valeur à 14 nécessite quatre fois plus
mémoire dans la phase fractionnée. La valeur est ignorée si un --diviser le fichier est donné.
--search-limit=int
Limite de recherche dans split algo. Des valeurs plus élevées peuvent trouver de meilleurs fractionnements, mais prendront
plus long.
Par défaut: 200000
--split-fichier=chemin
Utilisez les zones de tuiles précédemment calculées au lieu de les calculer à partir de zéro.
Le fichier peut être au format .list ou .kml.
--status-freq=int
Affiche la quantité de mémoire utilisée par la JVM chaque --statut-fréquence secondes. Définir =0
pour désactiver.
Par défaut: 120
--stop-après=un magnifique
Débogage : arrêt après une phase de programme donnée. Peut être divisé, gen-problem-list ou
gérer la liste des problèmes. La valeur par défaut est dist, ce qui signifie exécuter toutes les phases.
--wanted-admin-level=un magnifique
Spécifie la valeur admin_level la plus basse des relations limites qui doivent être conservées
Achevée. Utilisé pour filtrer les relations limites pour le traitement de la liste de problèmes. Les
la valeur par défaut 5 signifie que les relations limites sont maintenues complètes lorsque le
admin_level est 5 ou supérieur (5). Le paramètre est ignoré si
--keep-complete=false. Par défaut : 5
--write-kml=chemin
Le nom d'un fichier kml dans lequel écrire les zones. Ceci s'ajoute à
zones.liste (qui est toujours écrit).
Options spéciales
--version
Si le paramètre --version se trouve quelque part dans les options, mkgmap-splitter seront
imprimez simplement les informations sur la version et quittez. Les informations de version ressemblent à ceci :
splitter 279 compiled 2013-01-12T01:45:02+0000
--Aidez-moi Si le paramètre --Aidez-moi se trouve quelque part dans les options, mkgmap-splitter seront
imprimer une liste de toutes les options normales connues avec une courte aide et quitter.
TUNING
Réglage pour de meilleures performances
Quelques conseils pour ceux qui utilisent mkgmap-splitter pour diviser des fichiers volumineux.
· Pour un traitement plus rapide avec --keep-complete=true, convertissez le fichier d'entrée au format o5m
utilisant:
osmconvertir --drop-version fichier.osm -o=fichier.o5m
· L'option --drop-version est facultatif, il réduit le fichier aux données nécessaires
by mkgmap-splitter et mkgmap.
· Si vous constatez toujours des performances médiocres, examinez séparateur.log. Chercher le mot
Distribuer. Vous pouvez trouver quelque chose comme ceci dans la ligne suivante :
Traitement de 1502 zones en 3 passes, 501 zones à la fois
Cela signifie que le séparateur doit lire trois fois le fichier d'entrée car le --max-zones
paramètre était beaucoup plus petit que le nombre de zones. Si vous avez assez de tas, définissez
--max-zones valeur à une valeur supérieure au nombre de zones, par exemple
--max-zones=2048. Exécuter mkgmap-splitter encore et vous devriez trouver
Traitement de 1502 zones en un seul passage
· Plus de zones nécessitent plus de mémoire. Sois sûr que mkgmap-splitter a assez de tas
(augmenter le -Xmx paramètre) pour qu'il ne perde pas beaucoup de temps à la poubelle
collecteur (GC), mais gardez autant de mémoire que possible pour les caches d'E/S des systèmes.
· Si disponible, utilisez deux disques différents pour le fichier d'entrée et le répertoire de sortie, esp. lorsque vous
utilisez le format o5m pour l'entrée et la sortie.
· Si tu utilises mkgmap r2415 ou version ultérieure et que l'espace disque n'est pas un problème, envisagez d'utiliser
--sortie=o5m pour accélérer le traitement.
Réglage pour les faibles besoins en mémoire
Si votre machine a moins de 1 Go de mémoire libre (par exemple un netbook), vous pouvez toujours utiliser mkgmap-
séparateur, mais vous devrez peut-être être patient si vous utilisez le paramètre --garder-complet et
voulez diviser un fichier comme allemagne.osm.pbf ou un plus grand. Si nécessaire, réduisez le nombre
des zones traitées parallèlement à 50 avec le --max-zones paramètre. Vous devez utiliser
--keep-complete=false lors du partage d'un territoire comme l'Europe.
NOTES
· Il n'y a plus de limite supérieure au nombre de zones pouvant être éditées (auparavant
c'était 255). Plus de zones signifient simplement que plus de passes sont potentiellement nécessaires sur le .osm
fichier, et par conséquent le séparateur prendra plus de temps à s'exécuter.
· Il n'y a plus de limite sur le nombre de domaines auxquels un chemin ou une relation peut appartenir (auparavant
c'était 4).
Utilisez mkgmap-splitter en ligne en utilisant les services onworks.net