Я новичок в ArcGIS javascript
и изменил один из образцов на ArcGIS Developers, чтобы попытаться показать некоторые маршруты движения на верхней карте базы. Я также создаю таблицу маршрутов. В таблице показано, что я думаю, что это означает, что добавлен слой маршрута, но маршруты не отображаются на карте. Код показан ниже. Любая помощь будет оценена!Функциональный слой не отображается, но таблица функций отображается
РЕДАКТИРОВАТЬ:
Я обнаружил, что может отображать маршруты как ArcGISDynamicMapServiceLayer
с использованием URL http:.../MapServer
, и я могу генерировать таблицу функций с использованием URL http:.../MapServer/0
. Я думаю, мне нужно использовать FeatureLayer
для маршрутов, поэтому я могу выделить маршрут, соответствующий строке в таблице, которую пользователь выбирает. Один из образцов в FeatureLayer Sample сказал, что
Этот образец демонстрирует, как добавить базовый функциональный слой к карте. На уровне , FeatureLayer должен указывать на действительную службу функций , размещенную на ArcGIS Server или ArcGIS Online, или быть сконструирован с объектом Feature Collection .
Мое понимание - это функция маршрута, настроенная как услуга карты, а не как функция. Может ли это быть моей проблемой? Некоторые из примеров FeatureLayer
используют слои, хранящиеся в MapService (например, Gas Price Data), поэтому я не уверен, что это имеет значение.
var map, stateBaseMap, geometryLayer, routeFeature, myFeatureTable,
stateBaseMapUrl, geometryLayerUrl, routeFeatureUrl;
require([ "esri/map",
"esri/layers/ArcGISTiledMapServiceLayer",
"esri/tasks/GeometryService",
"esri/layers/FeatureLayer",
"esri/dijit/FeatureTable",
"dijit/layout/ContentPane",
"dijit/layout/BorderContainer",
"esri/geometry/Extent",
"esri/graphicsUtils",
"esri/tasks/query",
"dojo/dom",
"dojo/parser",
"dojo/ready",
"dojo/on"],
function(Map,
ArcGISTiledMapServiceLayer,
GeometryService,
FeatureLayer,
FeatureTable,
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_SNAPSHOT,
outFields : [ "*" ],
visible:true,
id : "routeFeature"
});
map.addLayer(routeFeature);
on(routeFeature, "load", function(){
loadTable();
});
function loadTable(){
myFeatureTable = new FeatureTable({
featureLayer : routeFeature,
map : map,
editable: false,
fieldInfos: [
{
name: 'ORIGIN',
alias: 'Entry State'
},
{
name: 'ROUTE_DESC',
alias: 'Route Description'
},
{
name: 'DESTNATION',
alias: 'Exit State'
}
]
}, 'myTableNode');
myFeatureTable.startup();
}
});
});
Я удалил 'map.addLayer (geometryLayer);' line, и это не помогло. Я использовал отладчик Firefox, чтобы пройти через него, и нет ошибок, появляющихся в javascript. – ponder275
Вот что мне нужно было знать. Они меняют маршруты на службу функций, которые, как мы надеемся, исправит проблему. Если вы поместите свой комментарий в качестве ответа, я бы выбрал его как решение. – ponder275