2017-03-01 3 views
1

병합 jvectormap.
나는 italy-provinces지도 내부의 모든 지방을 가진 하나의 스크립트이기 때문에 내가 데모 같은 multimap을 사용할 수 없습니다 생각, 그래서 각 지역의지도를 검색을위한 주요 기능은 쓸모가이 pen에서내가 두 jvectormaps을 병합하기 위해 노력하고있어 두지도

mapUrlByCode: function(code, multiMap){ 
    return '/js/us-counties/jquery-jvectormap-data-'+ 
     code.toLowerCase()+'-'+ 
     multiMap.defaultProjection+'-en.js'; 
} 

전 내가 성취하려고하는 것과 비슷한 것을 재현했습니다.
분명히이 솔루션은 정말 좋지 않습니다. 두 개의 맵을 사용하고 있고 첫 번째 맵의 임의의 영역을 클릭하면 두 번째 맵이 확대되지 않으므로 두 맵이 동기화되지 않은 것처럼 보입니다. 누군가가 필요한 것을 성취 할 방법을 알고 있거나 제안 할 수 있습니까?

답변

1

위의 jVectorMap은 둘 이상의 지역에 대한 집중도를 지원하므로 지역 및 지역 간 연결을 만들고 해당 기능을 두 번 호출하면됩니다.

HTML :

<div id="map-provinces"></div> 
<div id="map-regions"></div> 

CSS :

#map-provinces{ 
    height:500px; 
    width: 500px; 
    left:-500px; 
    opacity:0.5; 
} 
#map-regions{ 
    top: 8px; /* Body margin wasn't set correctly in the CodePen */ 
    position : absolute; 
    height:500px; 
    width: 500px; 
    opacity:0.5; 
} 

나는 약 지방지역 더 "명시 적"어떤 방법으로 약간에게 코드를 revorked 다음은 시칠리아 지역과 함께하는 방법입니다.이 예를 Provi 전체 목록으로 완성하려면 NCE 코드 :

var provinces ={"IT-82": ["TP","PA","AG","CL","EN","ME","CT","RG","SR"]}; 

$('#map-provinces').vectorMap({ 
    map: 'it_mill' 
}); 
$('#map-regions').vectorMap({ 
    map: 'it_regions_mill', 
    backgroundColor : 'white', 
    zoomOnScroll : false, 
    zoomMin : 0, 
    zoomMax :220, 
    regionStyle :{ 
    initial: { 
     fill: 'blue', 
     "fill-opacity": 1, 
     stroke: 'none', 
     "stroke-width": 0, 
     "stroke-opacity": 1 
    }, 
    hover: { 
     "fill-opacity": 1, 
     cursor: 'pointer' 
    }, 
    selected: { 
     fill: 'blue', 
     "fill-opacity": 1, 
    }, 
    selectedHover: { 
     "fill-opacity": 1, 
     cursor: 'pointer' 
    } 
    }, 
    onRegionClick: function(e, code, isSelected, selectedRegions){ 
    var codes = []; 
    provinces[code].forEach(function(province) { 
     codes.push("IT-"+province); 
    }); 
    $('#map-regions').vectorMap('get','mapObject').setFocus({region: code}); 
    $('#map-provinces').vectorMap('get', 'mapObject').setFocus({regions: codes}); 
    } 
}); 

오순절 마음에, 당신은 쉽게 jVectorMap 웹 사이트에서 제공되는 드릴 다운 샘플을 구현하고 모두가 올바르게 아래, 어디에서이 그림처럼, 지역을 클릭에 줌 후 정렬 된 맵을 가질 수 있습니다 당신이 당신의 CodePen에서 그것을처럼 모두 중복 된지도는 표시됩니다 : 내가 처음지도를 두 번째지도를 축소하는 경우

Sicily Provinces

+1

큰, 하나 개 더 질문 외모 사람 덕분에 와우, (지방)이 확대되지 않습니다 아웃. 그래서 두지도에 줌 버튼을 바인딩 할 수있는 방법이 있습니까? –

+0

네, 물론 그렇습니다.하지만 그것은 또 다른 질문이 될 것입니다. 두 개의 겹쳐진지도의 '뷰포트'를 동기화하는 방법 ... 또한 지역을 집중 한 후에지도를 교체해야하므로 각 현이 현재가 될 것입니다 전경지도를 클릭하면됩니다. 당신은 동의? – deblocker

+0

그게 좋은 기능이 될거에요, 나는 몇 가지 시도를하려고 해요, 아마도 내가 여기에 다른 질문에 대한 링크를 게시 할 수 있습니까? –