[OpenLayers-Users] getting Feature Info data directly from .shp files

sunny74 sb.ray at hotmail.com
Tue Mar 23 10:00:50 EDT 2010


Hi Bwoodall,

That example doesn't work.
I am using the GetfeatureInfo example of OL27.

My code is as follows:


<script type="text/javascript" language="javascript">
          var mapview, layer, layer1, map,base;

          OpenLayers.ProxyHost = "OL27/examples/proxy.cgi?url=";
//          var map = new OpenLayers.Map('map', );
          function init() {

              //alert("in init");
              map = new OpenLayers.Map('<%=map.ClientID%>',{
'maxResolution': 'auto' });

              //
              layer = new OpenLayers.Layer.WMS("OpenLayers WMS",
                "http://172.16.0.144:9000/cgi-bin/mapserv.exe?", { map:
'Shape/newwr1.map', layers: 'STATE', 'format': 'png' });

              layer1 = new OpenLayers.Layer.WMS("BASIC",
                "http://172.16.0.144:9000/cgi-bin/mapserv.exe?", { map:
'Shape/newwr1.map', transparent: 'true', layers: 'RailwayStations',
'format': 'png' });
             // base = new OpenLayers.Layer.WMS("Base",
"http://172.16.0.144:9000/cgi-bin/mapserv?map=Shape/newwr1.map", { layers:
["state"] });
              base = new OpenLayers.Layer.WMS("Base",
"http://mapsvr/cgi-bin/mapserv.exe?map=Shape/newwr1.map", { layers:
["STATE"] });

//              var wms = new OpenLayers.Layer.WMS("OpenLayers WMS",
              //       
"http://world.freemap.in/cgi-bin/mapserv?map=/www/freemap.in/world/map/factbook.map",
{ 'layers': 'factbook' });
              
              map.addLayers([layer, layer1,base]);
              map.zoomToMaxExtent();
              map.setCenter(new OpenLayers.LonLat(73.25, 20.35), 6);

              map.events.register('click', map, function(e) {
                  alert('clicked');
                  OpenLayers.Util.getElement('nodeList').innerHTML =
"Loading... please wait...";
                  var url = base.getFullRequestString({
                      REQUEST: "GetFeatureInfo",
                      EXCEPTIONS: "application/vnd.ogc.se_xml",
                      FORMAT: 'png',
                      BBOX: map.getExtent().toBBOX(),
                      X: e.xy.x,
                      Y: e.xy.y,
                      INFO_FORMAT: 'text/plain',
                      EPSG: 4326,
                      QUERY_LAYERS: "STATE",
                      FEATURE_COUNT: 6,
                      WIDTH: map.size.w,
                      HEIGHT: map.size.h
                  });
                  //  var msg = document.getElementById('urlmsg');
                  //  msg.value = url;
                  alert(url);
                  OpenLayers.loadURL(url, '', this, setHTML);
                  OpenLayers.Event.stop(e);
              });
               
          }

          function setHTML(response) {
              OpenLayers.Util.getElement('nodeList').innerHTML =
response.responseText;
          }


          
      
      </script>

But again this is throwing error:

#!/usr/bin/env python """This is a blind proxy that we use to get around
browser restrictions that prevent the Javascript from loading pages not on
the same server as the Javascript. This has several problems: it's less
efficient, it might break some sites, and it's a security risk because
people can use this proxy to browse the web and possibly do bad stuff with
it. It only loads pages via http and https, but it can load any content
type. It supports GET and POST requests.""" import urllib2 import cgi import
sys, os # Designed to prevent Open Proxy type stuff. allowedHosts =
['www.openlayers.org', 'openlayers.org', 'labs.metacarta.com',
'world.freemap.in', 'prototype.openmnnd.org', 'geo.openplans.org',
'sigma.openplans.org', 'www.openstreetmap.org'] method =
os.environ["REQUEST_METHOD"] if method == "POST": qs =
os.environ["QUERY_STRING"] d = cgi.parse_qs(qs) if d.has_key("url"): url =
d["url"][0] else: url = "http://www.openlayers.org" else: fs =
cgi.FieldStorage() url = fs.getvalue('url', "http://www.openlayers.org")
try: host = url.split("/")[2] if allowedHosts and not host in allowedHosts:
print "Status: 502 Bad Gateway" print "Content-Type: text/plain" print print
"This proxy does not allow you to access that location (%s)." % (host,)
print print os.environ elif url.startswith("http://") or
url.startswith("https://"): if method == "POST": length =
int(os.environ["CONTENT_LENGTH"]) headers = {"Content-Type":
os.environ["CONTENT_TYPE"]} body = sys.stdin.read(length) r =
urllib2.Request(url, body, headers) y = urllib2.urlopen(r) else: y =
urllib2.urlopen(url) # print content type header i = y.info() if
i.has_key("Content-Type"): print "Content-Type: %s" % (i["Content-Type"])
else: print "Content-Type: text/plain" print print y.read() y.close() else:
print "Content-Type: text/plain" print print "Illegal request." except
Exception, E: print "Status: 500 Unexpected Error" print "Content-Type:
text/plain" print print "Some unexpected error occurred. Error text was:", E 

Why are these erors comin?
How to solve?

thanks.
-- 
View this message in context: http://n2.nabble.com/getting-Feature-Info-data-directly-from-shp-files-tp4767879p4783758.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.



More information about the Users mailing list