문제

사용유를 만드는지도 함께 표시됩니다 구글지도 api 를 사용합니다.내가 발생한 성능 문제가 발생할 수 있습니다.

나의지도에 있는 모든 파일 형식입니다.

나는 테스트를 실행하는 시간을 얻을 렌더링 maps.

렌더링할 때 지도 shp2img 도구를 사용하여,명령행

shp2img -i gif -m C:\myfolder\mymapfile.map -o C:\myfolder\test.gif -all_debug 5 -map_debug 5

나는 다음과 같은 측정에서 로그파일:

[Thu Apr 30 13:50:19 2009].148000 msLoadMap(): 0.000s
[Thu Apr 30 13:50:19 2009].180000 msDrawMap(): Layer 0 (PWorld2), 0.032s
[Thu Apr 30 13:50:19 2009].180000 msDrawMap(): Drawing Label Cache, 0.000s
[Thu Apr 30 13:50:19 2009].180000 msDrawMap() total time: 0.032s
[Thu Apr 30 13:50:19 2009].195000 msSaveImage() total time: 0.015s
[Thu Apr 30 13:50:19 2009].195000 msFreeMap(): freeing map at 01595E18.
[Thu Apr 30 13:50:19 2009].195000 freeLayer(): freeing layer at 0159CD00.
[Thu Apr 30 13:50:19 2009].195000 shp2img total time: 0.047s

렌더링할 때 동일한지도를 통해 맵 서버를 사용하여,

http://localhost/cgi-bin/mapserv.exe?mymapfile.map&layers=&mode=tile&tilemode=gmap&tile=1+1+2

로그 파일이:

[Thu Apr 30 13:51:50 2009].664000 CGI Request 1 on process 3520
[Thu Apr 30 13:51:50 2009].664000 msTileSetExtent (-10013744.792915, 8348.961808) (-5009.377085, 10010405.208192)
[Thu Apr 30 13:51:51 2009].23000 msDrawMap(): Layer 0 (PWorld2), 0.359s
[Thu Apr 30 13:51:51 2009].23000 msDrawMap(): Drawing Label Cache, 0.000s
[Thu Apr 30 13:51:51 2009].23000 msDrawMap() total time: 0.359s
[Thu Apr 30 13:51:51 2009].23000 msSaveImage() total time: 0.000s
[Thu Apr 30 13:51:51 2009].23000 mapserv request processing time (loadmap not incl.): 0.359s
[Thu Apr 30 13:51:51 2009].23000 msFreeMap(): freeing map at 01598690.

에 대한 동일한 지도 shp2img 렌더링 도구는 지도 10 배 이상 빠른 맵 서버.를 추가하는 경우 레이어를 사용하는 타일드 대한 구글지도,10 초입니다.

누군가가 알고있는 이유 맵 서버는 렌더링이 속도가 느립니까?은 거기에는 해결 방법?

도움이 되었습니까?

해결책

의 몇 가지 사이의 차이 shp2img 및 mapserv 요청은:

1)shp2img 를 만듭니다 하나의 이미지,당신의 mapserv 요청을 생성하는 타일이 있습니다.이 의미는 그것을 렌더링하 9 타일 samen 경계 상자를 대신 1.이를 생성합니다.도 연출 없이 타일 옵션을 설정하고 실행하는 테스트를 다시 시도하십시오.

2)당신은 작은 오버헤드에 대해 cgi 요청에 mapserv 3)Mapserv 밀어서의 이미지를 http 동안 shp2img 쓰는 디스크에 바로 적용됩니다.4)당신은 당신이 지정하지 않은 층에 mapserv 요청을 의미하는 mapserv 가 찾고 있다.

다른 팁

당신은 이것을 읽을 수 있습니다 :http://mapserver.org/optimization/index.html

  • 가장 중요한 점 중 하나는 EPSG 파일에서 사용하지 않은 투영을 제거하는 것입니다. 예를 들어 Redhat 6/usr/share/proj/epsg 아래에 3 가지 예측이 있습니다.
  • 사용하지 않은 글꼴을 제거하십시오
  • MapFile Parser는 파일을 위에서 아래로 읽으므로 가장 많이 사용되는 레이어를 파일 상단에 놓습니다 (EPSG 파서는 같은 방식으로 작동 함).

모양 파일에는 동일한 발신자 투영이 있어야합니다. 그렇지 않으면 Mapserver는이를 즉시 재개해야합니다.

EG My OpenLayers Code (900913) :

var options = {
    projection: new OpenLayers.Projection('EPSG:900913'), //aka  EPSG:3785
    displayProjection: new OpenLayers.Projection('EPSG:4326'), //geographic 

내 모든 모양 파일은 900913 프로젝션 기반입니다.

몇 가지 제안이 있지만 어려운 답변은 없으며 많은 맵 서버 구성을하지 않았지만 사람들과 함께 일했습니다.

  1. Mapserver에 할 수있는 최적화가 많이 있습니다. 메일 링리스트를 확인합니다.
  2. Mapfile을 열고 구문 분석하는 것은 Mapserver에 시간이 많이 걸릴 수 있으므로 Mapfile을 최대한 작게 만드십시오.
  3. 모든 타일을 미리 만들고 맵 서버를 사용하여 파일을 얻으십시오. 즉석 타일링은 그리 빠르지 않습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top