독립 실행 형 Google 어스 클라이언트에 데이터를 제공하는 애플리케이션을 구축 중입니다. 초기 데이터 집합을 보내고 서버에서 변경 될 때 <NetworkLinkControl>
및 <Update><cookie>
태그를 사용하여 동적으로 업데이트하려고합니다. KML (JAK) 라이브러리 용 Java API를 사용하여 KML을 생성합니다. 유감스럽게도 GE가 내 네트워크 링크를 새로 고침하고 내가 보내는 업데이트를 철회했음을 확인할 수는 있지만 업데이트 된 정보는 GE에 표시되지 않습니다. 독서를 많이 한 후에는 업데이트의 <targetHref>
이 문제 일 수 있지만 99.9 %는 동일한 문자열을 보내고 있음을 알 수 있습니다.NetworkLinkControl 및 KML (JAK) 용 Java API를 사용하여 Google 어스 KML을 올바르게 업데이트하는 방법은 무엇입니까?
내가 혼란스러워하는 부분은 <targetHref>
에 <cookie>
요소의 값을 추가해야하는지 여부에 대한 상반되는 정보를 보았습니다. 정적 서버 URL에서 손으로 직접 작성한 테스트 KML 파일을 제공 할 때 실제로 초기 프로토 타입을 업데이트하는 것을 보았 기 때문에 실제로는 그렇지 않다고 생각됩니다. 사실 그것은 실망 스럽습니다. 저는 제 기계에서 작업을 업데이트하는 것을 보았습니다 만, KML처럼 정확하고 올바른 것으로 보이는 것은 작동하지 않습니다.
현재 설정은 다음과 같습니다 (명확성을 위해 제거 외부 XML 네임 스페이스; "$ CLIENT_ID"는 GUID와 같은 문자열) :
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><NetworkLink>
<Link>
<href>http://server/kmlupdates/${CLIENT_ID}</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>1.0</refreshInterval>
<viewRefreshTime>0.0</viewRefreshTime>
<viewBoundScale>0.0</viewBoundScale>
</Link>
</NetworkLink></kml>
:
루트 KML 파일이 http://server/kml/ $ {CLIENT_ID}에서 제공이 KML은 http://server/kmlupdates/ $에서 제공 업데이트 이후
<kml><NetworkLinkControl>
<minRefreshPeriod>0.0</minRefreshPeriod>
<maxSessionLength>-1.0</maxSessionLength>
<cookie>cookie=0|kmlRequestType=updates|projectID=6|lastUpdateSeenIndex=-1</cookie>
</NetworkLinkControl>
<Document id="myProject">
<name>My ProjectProject</name>
<Placemark id="pm1"><name>point1</name>
<Point><coordinates>-117.0,35.0</coordinates></Point>
</Placemark>
</Document></kml>
:
초기 내용 KML은 http://server/kmlupdates/ $ {CLIENT_ID}에서 제공 {CLIENT_ID} :
<kml><NetworkLinkControl>
<minRefreshPeriod>0.0</minRefreshPeriod>
<maxSessionLength>-1.0</maxSessionLength>
<cookie>cookie=0|kmlRequestType=updates|projectID=6|lastUpdateSeenIndex=0</cookie>
<Update>
<targetHref>http://server/kmlupdates/${CLIENT_ID}</targetHref>
<Change>
<Placemark targetId="pm1">
<name>Name changed by Update Change</name>
</Placemark>
</Change>
</Update>
</NetworkLinkControl></kml>
여기에 누락 된 내용에 대한 제안 사항이 있으면 누구나 문의 해 주시면 감사하겠습니다. 감사!
링크 전용 답변이 유용하지 않습니다; 답안에 관련 코드가 포함 된 코드를 포함시킬 수 있습니까? –
이미 자세한 내용을 업데이트 중 ... –