Saat ini saya sedang mengeksplorasi API JavaScript ArcGIS. Saya memiliki layanan peta saya sendiri dan layanan fitur di server lokal saya. Saya ingin menggunakan FeatuerLayer untuk memilih dan menyorot fitur pada peta. Tetapi ketika saya menambahkan layanan fitur saya, saya mendapatkan kesalahan berikut.
TypeError: Unable to draw graphic (geometry:null, symbol:null): _14 is undefined
Saya tidak dapat menemukan apa ini, dan saya tidak yakin apakah lapisan fitur telah ditambahkan ke peta atau tidak. Bagaimana saya bisa mengecek apakah sudah ditambahkan? Saya mencoba menggunakan metode dojo.connect dengan FeatureLayer dengan acara onClick. Tapi ini sepertinya tidak berhasil. Sudah menempatkan kode di bawah ini
Kode:
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);
sumber
FeatureLayer diakhiri dengan angka, yang lebih merupakan konsep array.
/ layanan / url / poin saya / di sini
vs.
/ fitur / url / poin / di sini / 0 saya
Url pertama menunjuk ke layanan yang berisi dari 1 hingga X Fitur. Sedangkan url kedua menunjuk ke Fitur spesifik di dalam layanan itu.
Semoga itu bisa membantu ...
sumber