您好,上面是我的转向表,在进行最近设施分析时报出下面的错误,请问如何解决?
//最近设施分析 开始 CloFac var CloFacVectorLayer, CloFacMarkerLayer1, CloFacMarkerLayer2, CloFacDrawPoint, CloFaceEventPoint, n = 0, facilityPoints = [ new SuperMap.Geometry.Point(6000, -5500), new SuperMap.Geometry.Point(5500, -2500), new SuperMap.Geometry.Point(2500, -3500)], CloFacStyle = { strokeColor: "#304DBE", strokeWidth: 3, pointerEvents: "visiblePainted", fill: false }; function CloFacInit() { CloFacVectorLayer = new SuperMap.Layer.Vector("CloFacVectorLayer"); CloFacDrawPoint = new SuperMap.Control.DrawFeature(CloFacVectorLayer, SuperMap.Handler.Point); CloFacDrawPoint.events.on({ "featureadded": CloFacdrawCompleted }); map.addControl(CloFacDrawPoint); CloFacMarkerLayer1 = new SuperMap.Layer.Markers("CloFacMarkerLayer1"); CloFacMarkerLayer2 = new SuperMap.Layer.Markers("CloFacMarkerLayer2"); var size = new SuperMap.Size(44, 40), offset = new SuperMap.Pixel(-(size.w / 2), -size.h), icon1 = new SuperMap.Icon("../theme/images/marker-gold.png", size, offset), icon2 = new SuperMap.Icon("../theme/images/marker-gold.png", size, offset), icon3 = new SuperMap.Icon("../theme/images/marker-gold.png", size, offset); CloFacMarkerLayer1.addMarker(new SuperMap.Marker(new SuperMap.LonLat(506572.4, 4341566.5), icon1)); CloFacMarkerLayer1.addMarker(new SuperMap.Marker(new SuperMap.LonLat(506812.938, 4340690), icon2)); CloFacMarkerLayer1.addMarker(new SuperMap.Marker(new SuperMap.LonLat(507672.281, 4342141), icon3)); map.addLayers([CloFacVectorLayer, CloFacMarkerLayer1, CloFacMarkerLayer2]); } function CloFacSelectEventPoint() { CloFacClearElements(); CloFacDrawPoint.activate(); } function CloFacdrawCompleted(drawGeometryArgs) { var point = drawGeometryArgs.feature.geometry, size = new SuperMap.Size(44, 33), offset = new SuperMap.Pixel(-(size.w / 2), -size.h), icon = new SuperMap.Icon("../theme/images/marker.png", size, offset); CloFacMarkerLayer2.addMarker(new SuperMap.Marker(new SuperMap.LonLat(point.x, point.y), icon)); CloFaceEventPoint = point; n++; if (n >= 1) { CloFacDrawPoint.deactivate(); } } function findClosestFacilities() { CloFacDrawPoint.deactivate(); if (!CloFaceEventPoint) { alert("请选择事件点!"); return; } var findClosestFacilitiesService, parameter, analystParameter, resultSetting; resultSetting = new SuperMap.REST.TransportationAnalystResultSetting({ returnEdgeFeatures: true, returnEdgeGeometry: true, returnEdgeIDs: true, returnNodeFeatures: true, returnNodeGeometry: true, returnNodeIDs: true, returnPathGuides: true, returnRoutes: true }); //var edgeWeightNamesSelect = document.getElementById("edgeWeightNames"); // var weightFieldName = edgeWeightNamesSelect.options[edgeWeightNamesSelect.selectedIndex].text; //var turnWeightFieldSelect = document.getElementById("turnNodeWeightNames"); //var turnNodeWeightNames = turnWeightFieldSelect.options[turnWeightFieldSelect.selectedIndex].text; analystParameter = new SuperMap.REST.TransportationAnalystParameter({ resultSetting: resultSetting, turnWeightField: "TurnCost", weightFieldName: "SmLength" }); parameter = new SuperMap.REST.FindClosestFacilitiesParameters({ event: CloFaceEventPoint, expectFacilityCount: 1, isAnalyzeById: false, facilities: facilityPoints, parameter: analystParameter }); findClosestFacilitiesService = new SuperMap.REST.FindClosestFacilitiesService(url2, { eventListeners: { "processCompleted": CloFacprocessCompleted, "processFailed": CloFacprocessFailed} }); findClosestFacilitiesService.processAsync(parameter); } function CloFacprocessCompleted(findClosestFacilitiesEventArgs) { // alert(1); var result = findClosestFacilitiesEventArgs.result, features = []; //console.log(result.facilityPathList);//null if (result.facilityPathList) { alert(result.facilityPathList.length); for (var i = 0, facilityPathList = result.facilityPathList, len = facilityPathList.length; i < len; i++) { var feature = new SuperMap.Feature.Vector(); feature.geometry = facilityPathList[i].route; feature.style = CloFacStyle; features.push(feature); } } CloFacVectorLayer.addFeatures(features); } function CloFacprocessFailed(findClosestFacilitiesEventArgs) { console.log(findClosestFacilitiesEventArgs.error.); } function CloFacClearElements() { CloFaceEventPoint = null; n = 0; CloFacMarkerLayer2.clearMarkers(); CloFacVectorLayer.removeAllFeatures(); } function CloFacClearAll() { map.removeControl(CloFacDrawPoint); map.removeLayer(CloFacVectorLayer); map.removeLayer(CloFacMarkerLayer1); map.removeLayer(CloFacMarkerLayer2); } <div id="CloFacToolbar"> <input type="button" class="CloFac-btn" value="事件点" style="margin-bottom: 10px" onclick="CloFacSelectEventPoint()" /> <input type="button" class="CloFac-btn" value="提交" style="margin-bottom: 10px" onclick="findClosestFacilities()" /> <input type="button" class="CloFac-btn" value="清除" style="margin-bottom: 10px" onclick="CloFacClearElements()" /> </div>
这是我的代码,您看一下,谢谢
您这里的设置的两个字段的名称是出了问题,这里应该去指定一个数据集然后用@符号来指定对应字段,类似于“Country@name”这样子
1.您好,第二个字段(权重字段)是在网络数据集中吗?
2.在iserver交通网络分析服务中设置转向表为什么设置不了,选择好字段并保存后选择的字段信息消失了,如下图所示,请问为甚么?
权重字段一定是在网络数据集中的某个字段,一般使用系统默认长度字段smlength;
这可能是您没有正确的制作网络数据集,您可以参考以下博客了解更多:
http://blog.csdn.net/supermapsupport/article/details/53434862