File: search_ajax.vsp

package info (click to toggle)
virtuoso-opensource 7.2.5.1%2Bdfsg1-0.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 285,240 kB
  • sloc: ansic: 641,220; sql: 490,413; xml: 269,570; java: 83,893; javascript: 79,900; cpp: 36,927; sh: 31,653; cs: 25,702; php: 12,690; yacc: 10,227; lex: 7,601; makefile: 7,129; jsp: 4,523; awk: 1,697; perl: 1,013; ruby: 1,003; python: 326
file content (127 lines) | stat: -rw-r--r-- 4,108 bytes parent folder | download | duplicates (2)
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);
?>