2013-03-13 45 views
0

我有一个基于ArcGIS Javascript API的映射在linux机器中托管。地图上有许多弹出窗口,每个弹出窗口都有一个按钮。在弹出窗口中单击一个按钮就可以运行shell脚本或系统命令吗?谢谢!从ArcGIS地图发出系统命令

编辑:添加代码段!

  function pageReady() { 
      var popup = new esri.dijit.Popup({ 
       fillSymbol: new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 2), new dojo.Color([255,255,0,0.25])) 
      }, dojo.create("div")); 


      var initExtent = new esri.geometry.Extent({"xmin":-13626637,"ymin":4550020,"xmax":-13624728,"ymax":4551042,"spatialReference":{"wkid":102100}}); 
      map = new esri.Map("map",{ 
       infoWindow:popup, 
       outFields: ["*"] 
      }); 


      dojo.addClass(map.infoWindow.domNode, "myTheme"); 


      dojo.connect(map,"onClick",function(evt){ 
       var query = new esri.tasks.Query(); 
       query.geometry = pointToExtent(map,evt.mapPoint,10); 

       var deferred = featureLayer.selectFeatures(query,esri.layers.FeatureLayer.SELECTION_NEW); 

       map.infoWindow.setFeatures([deferred]); 
       map.infoWindow.show(evt.mapPoint); 

      }); 

      var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer"); 
      map.addLayer(basemap); 

拉姆

+0

你的意思是在服务器上运行一个shell脚本/命令?取决于您的Web服务器我想,它并不是特定于ArcGIS JS API--让您的按钮调用服务器上的一个页面来启动shell脚本....取决于您拥有哪种语言支持。 PHP可以做到这一点? [linky!(http://stackoverflow.com/questions/5882650/how-to-execute-a-shell-script-in-php)。 – Juffy 2013-03-14 02:04:34

+0

不,事情是,ArcGIS API有弹出式模板,我不确定我们是否可以对POST或PHP页面进行POST。如果我在这里错了,请纠正我。 – drk 2013-03-14 23:55:29

+1

“弹出”是指ArcGIS InfoWindow/InfoTemplate吗?你能告诉我们你的模板的代码吗?它应该只是钩住按钮的onclick方法,并使用[jQuery.post](http://api.jquery.com/jQuery.post/)或[dojo.xhrPost](http:// dojotoolkit .org/reference-guide/1.8/dojo/xhrPost.html)来制作php页面。在InfoWindow中你可以做什么没有真正的限制(空间除外)。 – Juffy 2013-03-15 00:46:40

回答

0

我使用网络插座,解决了这个问题。感谢大家的投入!