지도의 기능 레이어가 추가 된 기본지도 레이어가 있습니다. 경로 테이블은 FeatureTable
에 의해 생성되며 경로가 테이블이나지도에서 클릭 될 때마다 녹색에서 빨간색으로 변경됩니다. 내 문제는지도를 확대하거나 축소하면 경로가 빨간색으로 바뀌고 녹색으로 바뀝니다. 경로를 클릭하면 다시 빨간색으로 바뀌지 만 빨간색으로 유지해야합니다. 나는 아래에 나의 코드를 보여 주었다. 어떤 도움을 주시면 감사하겠습니다.선택지도가 확대/축소되면 기호가 사라집니다.
var map, stateBaseMap, geometryLayer, routeFeature, routeDataFeature, myFeatureTable,
stateBaseMapUrl, geometryLayerUrl, routeFeatureUrl, routeDataFeatureUrl, routeChange;
require([ "esri/map",
"esri/layers/ArcGISDynamicMapServiceLayer",
"esri/layers/ArcGISTiledMapServiceLayer",
"esri/tasks/GeometryService",
"esri/layers/FeatureLayer",
"esri/dijit/FeatureTable",
"esri/symbols/SimpleLineSymbol",
"esri/Color",
"dijit/layout/ContentPane",
"dijit/layout/BorderContainer",
"esri/geometry/Extent",
"esri/graphicsUtils",
"esri/tasks/query",
"dojo/dom",
"dojo/parser",
"dojo/ready",
"dojo/on"],
function(Map,
ArcGISDynamicMapServiceLayer,
ArcGISTiledMapServiceLayer,
GeometryService,
FeatureLayer,
FeatureTable,
SimpleLineSymbol,
Color,
ContentPane,
BorderContainer,
Extent,
graphicsUtils,
Query,
dom,
parser,
ready,
on) {
parser.parse();
ready(function(){
esri.config.defaults.io.proxyUrl = "/llr/llrproxy";
esri.config.defaults.io.alwaysUseProxy = false;
esri.config.defaults.io.corsDetection = false;
stateBaseMapUrl = document.getElementById("shipment_stateBaseMapServiceURL").value;
geometryLayerUrl = document.getElementById("shipment_geometryServiceURL").value;
routeFeatureUrl = document.getElementById("shipment_routeLayerURL").value;
map = new Map("map");
stateBaseMap = new ArcGISTiledMapServiceLayer(stateBaseMapUrl);
map.addLayer(stateBaseMap);
geometryLayer = new GeometryService(geometryLayerUrl);
map.addLayer(geometryLayer);
routeFeature = new FeatureLayer(routeFeatureUrl, {
mode : FeatureLayer.MODE_ONDEMAND,
outFields : [ "*" ],
visible:true,
id : "routeFeature"
});
var selectionSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255,0,0]),6);
routeFeature.setSelectionSymbol(selectionSymbol);
map.addLayer(routeFeature);
on(routeFeature, "load", function(){
loadTable();
});
function loadTable(){
myFeatureTable = new FeatureTable({
featureLayer : routeFeature,
map : map,
editable: false,
showGridMenu:false,
gridOptions: {
selectionMode: "single"
},
editable: true,
fieldInfos: [
{
name: 'ROUTE_ID',
visible: false
},
{
name: 'ORIGIN',
alias: 'Entry State'
},
{
name: 'ROUTE_DESC',
alias: 'Route Description'
},
{
name: 'DESTNATION',
alias: 'Exit State'
}
],
menuFunctions: [
{ label: "Enter a new route.", callback: enterNewRoute }
]
}, 'myTableNode');
myFeatureTable.startup();
}
});
});
예제에서 나에게 문제가 있음을 보여 줬지만 해결 방법을 모르겠습니다. Selection Symbol이 먼저로드되고 나머지 맵 레이어가 맨 위에로드됩니다. 그것이 내지도에서 일어나는 일입니다. 빨간색 선택 기호가 확대 된 후 처음으로로드 된 다음 녹색 경로가로드됩니다. 당신의 예에서도 똑같은 일이 일어난다. 축소 한 다음 확대 된 후 빨간색 다이아몬드가 먼저 표시되고 녹색 데이터가 다음에 표시됩니다. 너가 충분히 멀리 급상승하면 빨간 다이아몬드는 은폐 해 얻는다. 디스플레이 순서를 뒤집을 방법이 있습니까? – ponder275