2014-07-05 4 views
0

데이터베이스에서 가져온 JSON 개체를 기반으로 포인트 클러스터 레이어를 만들려고합니다. 나는 그것을 실행하려고하면지도 레이어가 정의되지 않았습니다.

function addClusters() { 
$.ajax({ 
    url: "index.aspx/getBusCommuter", 
    type: "POST", 
    data: "", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (data) { 
     var parsed = JSON.parse(data.d); 
     $.each(parsed, function (i, jsondata) { 
      var coordXicon = jsondata.BusStopX; 
      var coordYicon = jsondata.BusStopY; 
      var commuterAmt = jsondata.CommuterAmt; 

      var latlng = new esri.geometry.Point({ "x": coordXicon, "y": coordYicon, "spatialReference": { "wkid": 4326 } }); 

      // cluster layer that uses OpenLayers style clustering 
      clusterLayer = new ClusterLayer({ 
       "data": commuterAmt, 
       "distance": 100, 
       "id": "clusters", 
       "labelColor": "#fff", 
       "labelOffset": 10, 
       "resolution": map.extent.getWidth()/map.width, 
       "singleColor": "#888" 
      }); 
      var defaultSym = new SimpleMarkerSymbol().setSize(4); 
      var renderer = new ClassBreaksRenderer(defaultSym, "clusterCount"); 

      var picBaseUrl = "http://static.arcgis.com/images/Symbols/Shapes/"; 
      var blue = new PictureMarkerSymbol(picBaseUrl + "BluePin1LargeB.png", 32, 32).setOffset(0, 15); 
      var green = new PictureMarkerSymbol(picBaseUrl + "GreenPin1LargeB.png", 64, 64).setOffset(0, 15); 
      var red = new PictureMarkerSymbol(picBaseUrl + "RedPin1LargeB.png", 72, 72).setOffset(0, 15); 
      renderer.addBreak(0, 2, blue); 
      renderer.addBreak(2, 200, green); 
      renderer.addBreak(200, 1001, red); 

      clusterLayer.setRenderer(renderer); 
      map.addLayer(clusterLayer); 
     }); 
    }, 
    error: function (request, state, errors) { 
    } 
}); 
} 

그러나, 그것은 나에게 clusterLayer이 정의되지 않은 오류 메시지가 말했다 : 여기에 포인트 클러스터 층 음모 내 자바 스크립트입니다. 어느 부분을 놓쳤는 지 궁금해하며 올바른 방식으로하고 있습니다.

지도에있는 각 지점에 올바른 금액이 첨부 될 수 있도록 데이터를 가져온 통근자를 설정할 수도 있습니다. 사전에 ArcGIS Documentation

감사 :

나는에서 참조를 가져옵니다.

답변

0

시도는 이 코드를 사용

define dojo.provide("extras.ClusterLayer"); 

에 다음

var dojoConfig = { 
     paths: { 
      extras: location.pathname.replace(/\/[^/]+$/, "") + "/extras" 
     } 
     }; 

direxctory 엑스트라에서 ClusterLayer.js을 포함 샘플 코드는 ArcGIS 문서를 다운로드하고 호출하는

clusterLayer = new extras.ClusterLayer({ 
       "data": commuterAmt, 
       "distance": 100, 
       "id": "clusters", 
       "labelColor": "#fff", 
       "labelOffset": 10, 
       "resolution": map.extent.getWidth()/map.width, 
       "singleColor": "#888" 
      }); 
관련 문제