컴파일에 성공하신 선배님
도움을 부탁드립니다.
작은 용량의 osm파일로는 성공했습니다.
하지만 대한민국 전체 지도를 다운 받아서 컴파일할때 실퍠했읍니다.
E:\mk>1
E:\mk>e:\mk\osmosis\bin\osmosis --rx file=south-korea-latest.osm --mw file=out.map
12월 05, 2018 8:58:16 오후 org.openstreetmap.osmosis.core.Osmosis run
정보: Osmosis Version 0.47
12월 05, 2018 8:58:17 오후 org.openstreetmap.osmosis.core.Osmosis run
정보: Preparing pipeline.
12월 05, 2018 8:58:17 오후 org.mapsforge.map.writer.osmosis.MapFileWriterTask <init>
정보: mapfile-writer version: mapsforge-map-writer-master-SNAPSHOT
12월 05, 2018 8:58:17 오후 org.mapsforge.map.writer.osmosis.MapFileWriterTask <init>
정보: mapfile format specification version: 3
12월 05, 2018 8:58:17 오후 org.openstreetmap.osmosis.core.Osmosis run
정보: Launching pipeline execution.
12월 05, 2018 8:58:17 오후 org.openstreetmap.osmosis.core.Osmosis run
정보: Pipeline executing, waiting for completion.
12월 05, 2018 8:58:17 오후 org.mapsforge.map.writer.osmosis.MapFileWriterTask process
정보: start reading data...
12월 05, 2018 8:58:31 오후 org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
심각: Thread for task 1-rx failed
java.lang.OutOfMemoryError: Java heap space
at gnu.trove.map.hash.TLongObjectHashMap.rehash(TLongObjectHashMap.java:157)
at gnu.trove.impl.hash.THash.postInsertHook(THash.java:388)
at gnu.trove.map.hash.TLongObjectHashMap.doPut(TLongObjectHashMap.java:248)
at gnu.trove.map.hash.TLongObjectHashMap.put(TLongObjectHashMap.java:222)
at org.mapsforge.map.writer.RAMTileBasedDataProcessor.addNode(RAMTileBasedDataProcessor.java:83)
at org.mapsforge.map.writer.osmosis.MapFileWriterTask.process(MapFileWriterTask.java:171)
at org.openstreetmap.osmosis.xml.v0_6.impl.NodeElementProcessor.end(NodeElementProcessor.java:139)
at org.openstreetmap.osmosis.xml.v0_6.impl.OsmHandler.endElement(OsmHandler.java:107)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.openstreetmap.osmosis.xml.v0_6.XmlReader.run(XmlReader.java:90)
at java.lang.Thread.run(Unknown Source)
12월 05, 2018 8:58:31 오후 org.openstreetmap.osmosis.core.Osmosis main
심각: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed.
at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146)
at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92)
at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
E:\mk>
에러가 나와서 실패했읍니다.
첫댓글 메모리 부족이라고 나와있네요
메모리위치를 하드로해주세요
하드용량은 500gb정도 남아있으면좋아요
현제작업은 단순 변환만 하시려는거네요
E:\mk>e:\mk\osmosis\bin\osmosis --rx file=south-korea-latest.osm --mw file=out.map type=hd
mapsforge map-writer 글에서 참고하여 컴파일 커맨드에 "HD" 옵션을 추가했고 osmosis.bat 파일에 JAVA 관련 내용 set JAVACMD_OPTIONS=-Xmx2G 까지 추가했지만 에러입니다.
일단 이 컴파일이 성공되면 osm 파일 내용을 변경해서 지도를 만들어 보려고 합니다.
대용량 파일이 에러없니 진행될수 있는 방법좀 알려주세요.
@산길찾아 커맨드에 "HD" Xmx2G
1가지만 사용이됩니다
명령어 에서 hd만사용하세요
사용중인 하드 용량 확인하시고요
@산길찾아 e:\mk\osmosis\bin\osmosis --rx file=south-korea-latest.osm --mw file=out.map type=hd
ram : 8gb HD : 700gb 입니다. --> 용량은 가능한거겠죠 ?
이따가 " set JAVACMD_OPTIONS=-Xmx2G " 를 삭제하고 HD 옵션만 걸고 해보겠습니다.
감사합니다.
@산길찾아 하드는비어있는 용량이어야합니다
참고로. 전 ram:64gb ssd:500gb. 사용합니다
@제제 예. 하드는 비어 있는 용량입니다. 지난번에 컴파일 했을때 50분이 지나서 에러가 나면서 실패했읍니다. 업무용 pc라서 바로 컴파일 해볼수가 없내요.. ㅠ
(CPU : i5-6500 3.2GHz) 입니다.
@산길찾아 osm 파일크기가 1gb 정도이지요?
@제제 1.2gb 정도 입니다.
저는 osm내 있는 key=peak 를 key=sand로 변경한다음 컴파일 하려고 하거든요. 그래서 먼저 원본 osm 을 성공시키려고요.
@산길찾아 산코드를. 변경하려는
특별한이유라도있나요?
@산길찾아 ram 용량 키우시면
바로 컴파일될거 같습니다
참고로 osm 용량 15gb 까지는 제컴에서 변환되네요
@제제 정확한 산 정보가 있는 다른 지도를 오버레이해서 사용하려고 하는데 중복된 산 정보를 지우려고 합니다.
아울러 변경이 가능하면 나만의 지도를 만들어 보려고 하고요.
@산길찾아 ㅎㅎ
peak 찻아서. 지우시고
새롭게 추가하세요
다른키 적용하실려면
테그 명령어도 추가되어야 합니다
@제제 테마를 사용해서 산 정보를 사라지게 하니까 모든 산정보가 사라집니다.(필요한 산정보까지)
그래서 osm 파일에서 산정보를 지운 지도를 만들어서 다른 산지도와 오버레이해서 사용하려고요.
@산길찾아 osm 파일에서 산정보를
없엔후에. 새로운 산정보를
추가하세요 오버레이가아닌
@제제 예. 그러고 싶은데,,,,
일단 시스템 메모리를 키워야 하는게 고민입니다....
확장이 가능한지 알수가 없네요. (노트북인데...)
혹시 자바관련 세팅값에 특별히 고려해야 할 사항이 없나요 ?
명령 프롬프트 화면상에서 설정해야되는 또다른 내용은 ?
우선, 링크된 것을 참고하세요.
https://stackoverflow.com/questions/7769676/creating-map-file-with-mapfilewriter-plugin-for-osmosis
https://github.com/mapsforge/mapsforge/issues/182
해결이 않되면, 도스 실행 명령어, osmosis.bat의 내용과 화면에 출력된 결과를 올려주세요.
감사합니다. 시도해보고 결과를 올리겠습니다.