JGraphT에서 GraphMLImporter를 사용하는 데 문제가 있습니다.JgraphT geojson 속성에서 GraphML 가져 오기 도구가 작동하지 않습니다.
직렬화 프로세스의 일부로 그래프를 그래프 형식으로 내 보냅니다. 그건 잘 작동합니다; 내 보낸 파일을 가져 와서 문제없이 gephi 나 다른 그래프 파싱 프로그램에서 볼 수 있습니다. 이 문제는 파일을 그래프로 가져 오기 (역 직렬화)하려고 할 때 발생합니다.
내보낼 때 개체의 필드 중 하나가 형상입니다. 우리는 이것을 필요로하므로 각 꼭지점의 특성으로 내보낼 수 있습니다 (각 꼭지점은 작은 영역을 대표하고 기하학은 연관된 영역입니다). 다시 읽어 보면 속성으로 전체 문자열을 제공하는 대신 어떤 이유로 마지막 좌표와 일부 대괄호 만 가져옵니다. 물론 유효한 지오메트리가 아니며 그것은 질식합니다. 참고로
은, 우리가 graphml 우리의 그래프를 쓸 때 우리가 수출에서 무엇을 얻을 수 있습니다 :<?xml version="1.0" encoding="UTF-8"?><graphml xmlns="http://graphml.graphdrawing.org/xmlns" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<key id="key0" for="node" attr.name="lat" attr.type="double"/>
<key id="key1" for="node" attr.name="lng" attr.type="double"/>
<key id="key2" for="node" attr.name="geometry" attr.type="string"/>
<key id="key3" for="edge" attr.name="travel_time" attr.type="double"/>
<graph edgedefault="directed">
<node id="1">
<data key="key0">0.5</data>
<data key="key1">0.5</data>
<data key="key2">"{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,1.0],[1.0,1.0],[1.0,0.0],[0.0,0.0]]]}"</data>
</node>
<node id="2">
<data key="key0">0.5</data>
<data key="key1">1.5</data>
<data key="key2">"{"type":"Polygon","coordinates":[[[0.0,1.0],[0.0,2.0],[1.0,2.0],[1.0,1.0],[0.0,1.0]]]}"</data>
</node>
<edge id="1" source="1" target="2">
<data key="key3">1.0</data>
</edge>
<edge id="2" source="2" target="1">
<data key="key3">1.0</data>
</edge>
</graph>
</graphml>
을 내가 그래프를 역 직렬화 할 때, 속성은 그이 위도 걷고 있습니다 (쪽에 KEY0 및 KEY1에 대해 올바르게 건너)하지만 키 2 (우리 기하 개체)에 대한 문자열은 다음과 같이 다시 온다 :
결과,[0.0,0.0]]]}"
, 나는 형상을 역 직렬화 할 수 없습니다.
제 질문은 왜 이런 일입니까? 이것은 graphml 형식의 제한 사항입니까? 어떤 이유로 geojson 문자열을 포함 할 수 없습니까? XML을 올바르게 작성하는 법을 모르십니까?
도움을 주시면 감사하겠습니다.
사람들은 Jgrapht가 GraphML 가져 오기 도구와 내보내기 도구를 사용하기 위해 제공하는 데모를 통해 알았지 만 실제로 이것에 대한 정보는 없습니다. 이것은 매우 단순한 물체만을 다루기 때문에 복잡하지는 않습니다.