1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
<?vsp
--
-- $Id$
--
-- AJAX Handler for the google map control
--
-- This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
-- project.
--
-- Copyright (C) 1998-2018 OpenLink Software
--
-- This project is free software; you can redistribute it and/or modify it
-- under the terms of the GNU General Public License as published by the
-- Free Software Foundation; only version 2 of the License, dated June 1991.
--
-- This program is distributed in the hope that it will be useful, but
-- WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- General Public License for more details.
--
-- You should have received a copy of the GNU General Public License along
-- with this program; if not, write to the Free Software Foundation, Inc.,
-- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
--
--
declare _wmd_inst integer;
declare _lat_min, _lat_max, _lng_min, _lng_max double precision; -- the bounds of the map
declare _lat_step, _lng_step double precision; -- the size of the single icon
declare exit handler for sqlstate '*' {
log_message (sprintf ('search_ajax.vsp AJAX Error : [%s] : %s', __SQL_STATE, __SQL_MESSAGE));
return;
};
commit work;
set isolation='uncommitted';
_wmd_inst := cast (get_keyword ('inst', params, NULL) as integer);
_lat_min := cast (get_keyword ('al', params, NULL) as double precision);
_lat_max := cast (get_keyword ('ah', params, NULL) as double precision);
_lng_min := cast (get_keyword ('nl', params, NULL) as double precision);
_lng_max := cast (get_keyword ('nh', params, NULL) as double precision);
_lat_step := cast (get_keyword ('as', params, NULL) as double precision);
_lng_step := cast (get_keyword ('ns', params, NULL) as double precision);
-- dbg_obj_print ('AJAX raw',
-- 'inst=', _wmd_inst,
-- 'lat_min=', _lat_min,
-- 'lat_max=', _lat_max,
-- 'lng_min=', _lng_min,
-- 'lng_max=', _lng_max,
-- 'lat_step=', _lat_step,
-- 'lng_step=', _lng_step);
if (_wmd_inst is null
or _lat_min is null or _lat_max is null or _lng_min is null or _lng_max is null
or _lat_step is null or _lng_step is null)
signal ('22023', 'Invalid parameters', 'WAS01');
if (_lat_min >= _lat_max or _lng_min >= _lng_max
or _lat_step < 0
or _lng_step < 0)
signal ('22023', 'Invalid parameters', 'WAS02');
-- dbg_printf ('AJAX Calling : inst=%d lat (min:%f max:%f) lng (min:%f max:%f) step (lat:%f lng:%f)',
-- _wmd_inst,
-- _lat_min, _lat_max,
-- _lng_min, _lng_max,
-- _lat_step, _lng_step);
declare _wmd_sql varchar;
declare _wmd_ballon_inx smallint;
declare _wmd_lat_inx smallint;
declare _wmd_lng_inx smallint;
declare _wmd_key_name_inx smallint;
declare _wmd_key_val any;
declare _wmd_base_url varchar;
declare _wmd_vs_sid varchar;
declare _wmd_vs_realm varchar;
declare _binding_nodes_count_inx smallint;
WA_MAPS_AJAX_GET_VALS_BY_ID (
_wmd_inst,
_wmd_sql,
_wmd_ballon_inx,
_wmd_lat_inx,
_wmd_lng_inx,
_wmd_key_name_inx,
_wmd_key_val,
_wmd_base_url,
_wmd_vs_sid,
_wmd_vs_realm);
if (isstring (_wmd_vs_sid) and _wmd_vs_sid <> '')
connection_set ('wa_sid', _wmd_vs_sid);
else
connection_set ('wa_sid', '');
commit work;
-- dbg_obj_print ('AJAX found data : ',
-- _wmd_sql, _wmd_ballon_inx, _wmd_lat_inx, _wmd_lng_inx,
-- _wmd_key_name_inx, _wmd_key_val, _wmd_base_url);
_wmd_sql := WA_MAPS_CLIP_INVISIBLE (_wmd_sql, _lng_min, _lng_max, _lat_min, _lat_max);
_wmd_sql := WA_MAPS_BIND_MARKERS (_wmd_sql, _lng_min, _lat_min, _lng_step, _lat_step,
_wmd_key_val);
-- fix the indices:
_wmd_lng_inx := 1;
_wmd_lat_inx := 2;
_wmd_key_name_inx := 3;
_wmd_ballon_inx := 4;
_binding_nodes_count_inx := 5;
-- dbg_obj_print ('QRY:', _wmd_sql);
WA_MAPS_AJAX_SEND_RESPONSE (
_wmd_sql,
_wmd_ballon_inx,
_wmd_lat_inx,
_wmd_lng_inx,
_wmd_key_name_inx,
_wmd_key_val,
_binding_nodes_count_inx);
?>
|