2012-01-26 4 views
3

GeoXML js를 사용하고 있습니다. v3 Google지도에서 kml 파일을 로컬에서 구문 분석합니다. kml이 공개적으로 액세스 가능한 서버에 있어야하므로 KmlLayer()를 사용하고 싶지 않습니다. http://code.google.com/p/geoxml3/wiki/Usage로컬에서 Google지도에 kml 파일을 렌더링 하시겠습니까?

원래 SQL 서버 데이터베이스에서 바이트 배열로 kml 파일이 있습니다.

데이터베이스에서 바이트 배열을 검색하고 File.WriteAllBytes("c:\\KmlFiles\\layer" + id + ".kml", byte[])을 수행하면 kml 파일이 경로에 성공적으로 저장됩니다.

이제 kml 파일을 GeoXML 파서에 전달해야합니다. 이 메서드에 대한 디렉터리 경로를 전달하려고했습니다. 다음과 같습니다.

<script type="text/javascript"> 
    var myMap = new google.maps.Map(...); 

    var myParser = new geoXML3.parser({map: myMap}); 
    myParser.parse(path); 
    </script> 

이 방법은 작동하지 않습니다. URL이 아니므로 kml 파일을 전달하는 것이 올바른 방법이 아닌 것 같습니다. 나는 내가 kml 파일을 렌더링하도록하기 위해 할 수있는 일에 매달렸다. 나는 .Net MVC 응용 프로그램을 Google지도가 내장되어있는 곳에서 사용하고 있는데, 현재 PC에서 로컬로 실행 중이며 iis 7을 사용하여 웹 서버에 게시하지 않았습니다.

kml 파일을 구문 분석하는 방법에 대해 알려주십시오. kml 파일의 URL은 어떻게 얻을 수 있습니까? 계속 진행하는 방법에 붙어 있습니다. 감사.

답변

1
  • 당신은 KMLResult를 반환하는 컨트롤러 액션에 ActionResult을 무시할 수
  • 조치는
  • 지금 당신이

IMO KML 레이어를 사용할 수 있습니다 Authoize 속성 (및 로그인)를 사용하여 확보 할 수 Javascript 로딩을 위해 파일을 클라이언트 PC에 다운로드하는 것은 좋은 생각이 아닙니다.

+0

그러나 KmlLayer (...)는 공용 서버에 저장된 kml 파일을 가리켜 야하는 보안이 필요없는 URL을 필요로하므로 Google 서버에서 파싱 할 수 있습니다. 먼저 파일을 서버에 저장해야합니까? – Qwerty

+0

KML 파일을 클라이언트의 PC에 저장하지 않고 보안되는 MVC 응용 프로그램 디렉토리에 저장할 수있는 방법 ... KML 파일을 다른 사람이 액세스 할 수 없도록 로컬로 렌더링하는 것이 좋습니다. 그런 식으로 GeoXML을 사용하는 방법은 무엇입니까? – Qwerty

+0

페이지를로드하기 전에 로그인 할 수 있습니다. 그러면 [인증] 속성에 다른 로그인이 필요하지 않지만 로그인 한 사용자 만 액세스 할 수 있습니다. GeoXML btw를 사용하지 않았습니다. – Muthu

관련 문제