Tôi hiện đang khám phá API JavaScript ArcGIS. Tôi có các dịch vụ bản đồ và dịch vụ tính năng của riêng mình trên máy chủ cục bộ. Tôi muốn sử dụng FeatuerLayer để chọn và đánh dấu tính năng trên bản đồ. Nhưng khi tôi thêm dịch vụ tính năng của mình, tôi gặp lỗi sau.
TypeError: Unable to draw graphic (geometry:null, symbol:null): _14 is undefined
Tôi không thể tìm ra điều này có thể là gì, và tôi không chắc liệu lớp tính năng đã được thêm vào bản đồ hay chưa. Làm thế nào tôi có thể kiểm tra nếu nó đã được thêm vào? Tôi đã thử sử dụng phương thức dojo.connect với FeatureLayer với sự kiện onClick. Nhưng điều này dường như không hoạt động. Đã đặt mã dưới đây
Mã số:
esri.config.defaults.io.proxyUrl = "proxy.ashx";
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("esri.map");
dojo.require("esri.layers.FeatureLayer");
dojo.require("esri.tasks.query");
var map;
var selectionToolbar;
var infoTemplate = new esri.InfoTemplate();
infoTemplate.setTitle("${ROADNAME}");
infoTemplate.setContent("<b>ROAD NAME: </b>${LINK_ID}<br/>" + "<b>CAT</b>${CAT}</b>");
function init() {
try {
var initExtent = new esri.geometry.Extent({
"xmin": 103.55,
"ymin": 1.13,
"xmax": 104.16,
"ymax": 1.56,
"spatialReference": {
"wkid": 4326
}
});
map = new esri.Map("map", {
extent: esri.geometry.geographicToWebMercator(initExtent)
});
var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer");
//my map service layer
var basemap_sing = new esri.layers.ArcGISTiledMapServiceLayer("http://karthikpc:8399/arcgis/rest/services/Carriage_Mercantor/MapServer", {
displayLevels: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
});
// my feature layer which i am not able to use
var featureLayer = new esri.layers.FeatureLayer("http://karthikpc:8399/arcgis/rest/services/Carriage_Mercantor/FeatureServer", {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
infoTemplate: infoTemplate,
outFields: ["*"]
});
map.addLayer(basemap);
map.addLayer(base_sing);
map.addLayer(featureLayer);
dojo.connect(map, "onLoad", initSelectToolbar);
dojo.connect(featureLayer."onClick", helloworld);
} catch (e) {
alert('An error has occurred: ' + e.message);
}
}
function helloworld() {
alert("hello world");
}
dojo.addOnLoad(init);