2011-01-27 2 views
1

캔버스에 많은 수의 hextiles를 렌더링해야합니다. 나는 사용자가 볼 수있는 타일 만 렌더링하고 사용자가 스크롤 할 때 (드래그 또는 화살표 키 또는 팬 컨트롤을 사용하여) 추가 hextiles를로드하도록이 기능을 만들고 싶습니다. 내 머리 속에 기본 아이디어가 있지만 확장 성이 뛰어난 강력한 솔루션을 찾는 데 도움이 필요합니다.hextiles에 대한 팬 컨트롤

을 : 내가 염두에두고 지금 당장 할 수있는 일

. 화면에로드해야하는 타일을 식별하고 서버에서 렌더링 할 데이터를 가져옵니다. b. 사용자가 드래그하면로드해야하는 새 타일 세트를 찾아 데이터를 가져 와서 전체 화면을 다시로드합니다.

이 기능은 작동하지만 스크롤하는 느낌을주지는 않습니다. 즉, 갑자기 모든 것을 재배치합니다. 이상적으로, 나는 이것을 스크롤 할 때 Google지도의 느낌을 얻고 싶습니다. 나는 맵에서 측면에있는 타일 몇 개를로드하고 드래그 할 때 기본 캔버스 만 스크롤하는 것으로 놀았지만 캔버스가 부족하기 때문에 너무 잘 작동하지 않습니다 ... 캔버스가 있으면 정말 멋질 것입니다. 원형 버퍼처럼 동작하여 어떤 방향으로 스크롤해도 메모리에 일정한 수의 타일 만 유지되고 모든 방향으로 계속 스크롤 할 수 있습니다.

어떤 생각이나 도움이되는 힌트를 보내 주시면 감사하겠습니다.

감사합니다.

답변

0

Google지도 Flash API를 사용하는 것이 좋습니다. CustomTileLayer를 만들 수 있습니다. 하나의 큰 원본 이미지가있는 경우 여러 가지 확대/축소 수준에 맞게 이미지를 샘플로 분할하는 이미지 피라미드 제조업체를 검색 할 수 있습니다 (대개 확대/축소 수준을 사용하는 폴더 구조를 만드는 것으로 보입니다.) 폴더 이름으로 사용하고 이미지 및 확대/축소 수준에 따라 각 폴더에 x, y 타일이 있음). 확대/축소가 어떤 방식 으로든 요구 사항이 아니라면 단일 확대/축소 수준 만있을 수 있으며지도 컨트롤의 확대/축소 컨트롤을 비활성화 할 수 있습니다. 만약 당신이 이것을 피하거나 좋은 해결책이 아니라고 믿는 이유가 있다면 알려주십시오. (아마도 그것의 존재를 알지 못했을 것입니다. 그러나 Google지도가 어떻게 작동하는지, 왜 Google지도를 사용하지 않는지와 같은 것을 원한다면 제가 알 수 있습니다.) 기본). 캐세이 패시픽 항공의 CustomTileLayer를 직접 구현하지는 않았지만 Google Maps Flash API에 대한 경험이 조금 있습니다. 당신은 오른쪽 swc 하나를 사용합니다 플래시 만 다른 하나는 플렉스 모두 포함되지 않습니다)입니다.

행운을 빌어 요, 숀

http://nl-samples.googlecode.com/svn/trunk/flexmap/9a/bin-release/CustomProjection.html

+0

안녕하세요 숀은, 그 상세한 의견 주셔서 감사합니다. Googla Maps API를 살펴 보았지만 내 경우에 적용 할 수 있는지 확실하지 않았습니다. 나는 그 자체로 존재하는 헥스 타일 목록을 가지고 있으며, 무제한 수의 타일을 가질 수 있습니다. 또한 각 헥스 타일은 현재 분리되어 렌더링됩니다. goole 맵 플래시 API를 사용하려면 각 헥스 타일은 추적 할 필요가있는 몇 가지 특성을 가지고 있으므로 잘 작동하는지 잘 모르는 모든 16 진수 타일을 배치하여 하나의 큰 이미지를 만들어야한다고 생각합니다. 의). 이 점을 염두에두고 추가로 언급하면 ​​도움이 될 것입니다. – Azeem

+0

안녕하세요 Azeem, 문제 없습니다. 죄송합니다. 문제가 해결되지 않습니다. 캔버스가 "부족하다"고 말하면 4800x4800 그래픽 제한을 초과한다는 뜻입니까? 아마도 당신이 헥스 타일을 개별 스프라이트로 유지하고 캔버스를 사용하여 마우스 이벤트를 픽업 한 다음 스프라이트를 개별적으로 이동하고 필요에 따라로드 및 이동시킬 수 있다고 생각합니다. 기본적으로 당신은 얼마나 빨리 당신이 스크롤해야하는지/얼마만큼 미리로드 될 필요가 있는가에 따라 당신이로드하는 "근접한"타일의 양을 가지고 놀 필요가 있을지도 모른다고 생각하고 있습니다. 그러나 일반적인 개념은 좋게 들립니다. 오늘 시간이 좀 있으면 실험 할게. – shaunhusain

관련 문제