Серверная часть:
Код: Выделить всё
<?
$lat = $_GET['lat'];
$lon = $_GET['lon'];
$id1=0;
$conn_string = "host=localhost port=5432 dbname=street user=postgres password=pass";
$dbconn = pg_connect($conn_string) or die('Could not connect: ' . pg_last_error());
$pgquery = "SELECT gid, Имя ";
$pgquery .= "FROM point ";
$pgquery .= "WHERE ST_Within(PointFromText('POINT(".$lon." ".$lat.")'),the_geom)";
$result = pg_query($pgquery) or die('Query failed: ' . pg_last_error());
$id1=0;
while( $rez=pg_fetch_Object($result) )
{
$id1=$rez->Имя;
}
pg_close($dbconn);
// вывод результатов
print( "{ success: true, x:'{$lat}', y:'{$lon}',id1:'{$id1}' }" );
return $id1;
?>
Вот код клиента:
Код: Выделить всё
<script type="text/javascript">
var lon = 400;
var lat = 400;
var zoom = 1;
var map, layer;
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'double': false,
'pixelTolerance': 0,
'stopSingle': false,
'stopDouble': false
},
initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Click(
this, {
'click': this.trigger
}, this.handlerOptions
);
},
trigger: function(e) {
var lonlat = map.getLonLatFromViewPortPx(e.xy);
}
});
function init(){
options = {
maxExtent: new OpenLayers.Bounds(-15000, -19200, 26200, 16000),
resolutions: [40,20,15,7.5,5,3,1,0.55,0.2,0.1,0.01]
};
map = new OpenLayers.Map( 'map' , options);
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"/cgi-bin/mapserv.exe?map=/ms4w/apps/example/street.map&", {layers: 'veget'} , {singleTile: true, ratio: 1});
map.addLayer(layer);
map.addControl( new OpenLayers.Control.LayerSwitcher() );
map.addControl(new OpenLayers.Control.MousePosition());
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
}
</script>