Today I have a table in the DB with columns Feature Name and Feature Point.
When I want to load the points to OL I do the following :
First I call web service to get list of json objects:
var request = OpenLayers.Request.POST( { url: "../service.asmx/GetCameraFeatures", async: false, data: "{}", headers: { "Content-Type": "application/json; charset=utf-8" }, callback: this.callbackLoadCameras});
I parse points to features and add to the layer:
var objArr = eval('(' + request.responseText + ')').d; var jsonFormat = new OpenLayers.Format.JSON(); var features = jsonFormat.read(objArr); var format = new OpenLayers.Format.WKT(); var featuresArr = []; for (var i = 0; i < features.length; i++) { var f1 = format.read(features[i].point); f1.id = features[i].name; featuresArr.push(f1); } if (featuresArr.length > 0) { cosmeticLayer.addFeatures(featuresArr); }
Is there a better way to do this ? faster? more convenient ?
