1 |
<?php |
---|
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 |
include_once(dirname(__FILE__)."/../NavTool.php"); |
---|
32 |
|
---|
33 |
|
---|
34 |
|
---|
35 |
|
---|
36 |
|
---|
37 |
|
---|
38 |
|
---|
39 |
class RulerNM extends NavTool |
---|
40 |
{ |
---|
41 |
var $mnNumberOfPoints = 100; |
---|
42 |
var $mnSpaceBetweenPoints = 15; |
---|
43 |
|
---|
44 |
|
---|
45 |
|
---|
46 |
|
---|
47 |
function RulerNM() |
---|
48 |
{ |
---|
49 |
|
---|
50 |
parent::NavTool(); |
---|
51 |
|
---|
52 |
$this->SetNavCommand("RULER"); |
---|
53 |
$this->maAttributes["UNITS"] = new StringAttribute( "UNITS", true, |
---|
54 |
array( "INCHES", "FEET", "MILES", "METERS", "KILOMETERS", "DEGREES", "PIXELS", "NAUTICAL MILES" ) ); |
---|
55 |
$this->maAttributes["NUMBEROFPOINTS"] = new IntegerAttribute( "NUMBEROFPOINTS", false, 0 ); $this->maAttributes["SPACEBETWEENPOINTS"] = new IntegerAttribute( "SPACEBETWEENPOINTS", false, 0 ); |
---|
56 |
|
---|
57 |
|
---|
58 |
$this->szWidgetDescription = <<<EOT |
---|
59 |
The RulerNM widget is a tool that allows the user to interactively draw line segments on the map |
---|
60 |
and display the cumulative distance of the segments in ground units. |
---|
61 |
EOT; |
---|
62 |
|
---|
63 |
$this->mnMaturityLevel = MATURITY_BETA; |
---|
64 |
$this->mbNavSubmit = false; |
---|
65 |
} |
---|
66 |
|
---|
67 |
|
---|
68 |
|
---|
69 |
|
---|
70 |
function IsUnitValid($szUnit) |
---|
71 |
{ |
---|
72 |
$aValidUnits = array(trim($this->moMLT->get("6", "Inches")), |
---|
73 |
trim($this->moMLT->get("7", "Feet")), |
---|
74 |
trim($this->moMLT->get("8", "Miles")), |
---|
75 |
trim($this->moMLT->get("9", "Meters")), |
---|
76 |
trim($this->moMLT->get("10", "Kilometers")), |
---|
77 |
trim($this->moMLT->get("11", "Degrees")), |
---|
78 |
trim($this->moMLT->get("12", "Pixels")), |
---|
79 |
trim($this->moMLT->get("24", "Nautical Miles"))); |
---|
80 |
|
---|
81 |
$nCount = count($aValidUnits); |
---|
82 |
$bFound = false; |
---|
83 |
|
---|
84 |
for ($i=0; $i<$nCount; $i++) |
---|
85 |
{ |
---|
86 |
if(strcasecmp($aValidUnits[$i], trim($szUnit)) == 0) |
---|
87 |
{ |
---|
88 |
$bFound = true; |
---|
89 |
break; |
---|
90 |
} |
---|
91 |
} |
---|
92 |
return $bFound; |
---|
93 |
} |
---|
94 |
|
---|
95 |
|
---|
96 |
|
---|
97 |
|
---|
98 |
function GetUnitAbbbreviation($szUnit) |
---|
99 |
{ |
---|
100 |
|
---|
101 |
|
---|
102 |
$szUnit = trim(strtoupper($szUnit)); |
---|
103 |
|
---|
104 |
$szResult = ""; |
---|
105 |
switch ($szUnit) |
---|
106 |
{ |
---|
107 |
case "INCHES": |
---|
108 |
$szResult = trim($this->moMLT->get("13", "in.")); |
---|
109 |
break; |
---|
110 |
|
---|
111 |
case "FEET": |
---|
112 |
$szResult = trim($this->moMLT->get("14", "ft")); |
---|
113 |
break; |
---|
114 |
|
---|
115 |
case "MILES": |
---|
116 |
$szResult = trim($this->moMLT->get("15", "mi")); |
---|
117 |
break; |
---|
118 |
|
---|
119 |
case "METERS": |
---|
120 |
$szResult = trim($this->moMLT->get("16", "m")); |
---|
121 |
break; |
---|
122 |
|
---|
123 |
case "KILOMETERS": |
---|
124 |
$szResult = trim($this->moMLT->get("17", "km")); |
---|
125 |
break; |
---|
126 |
|
---|
127 |
case "DEGREES": |
---|
128 |
$szResult = trim($this->moMLT->get("18", "dd")); |
---|
129 |
break; |
---|
130 |
|
---|
131 |
case "PIXELS": |
---|
132 |
$szResult = trim($this->moMLT->get("19", "px")); |
---|
133 |
break; |
---|
134 |
|
---|
135 |
case "NAUTICAL MILES": |
---|
136 |
$szResult = trim($this->moMLT->get("25", "nm")); |
---|
137 |
break; |
---|
138 |
|
---|
139 |
default: |
---|
140 |
break; |
---|
141 |
} |
---|
142 |
|
---|
143 |
return $szResult; |
---|
144 |
} |
---|
145 |
|
---|
146 |
|
---|
147 |
|
---|
148 |
|
---|
149 |
function ConvertToMeter($szInUnit, $dfValue) |
---|
150 |
{ |
---|
151 |
|
---|
152 |
|
---|
153 |
$dfResult = -1.0; |
---|
154 |
|
---|
155 |
$aMeterPerUnit = array(); |
---|
156 |
$aMeterPerUnit[0] = 0.0254; |
---|
157 |
$aMeterPerUnit[1] = 0.3048; |
---|
158 |
$aMeterPerUnit[2] = 1609.3445; |
---|
159 |
$aMeterPerUnit[3] = 1.0; |
---|
160 |
$aMeterPerUnit[4] = 1000.0; |
---|
161 |
$aMeterPerUnit[5] = 110570; |
---|
162 |
$aMeterPerUnit[6] = 1852; |
---|
163 |
|
---|
164 |
|
---|
165 |
$szInUnit = trim(strtoupper($szInUnit)); |
---|
166 |
switch ($szInUnit) |
---|
167 |
{ |
---|
168 |
case "INCHES": |
---|
169 |
$dfResult = $dfValue * $aMeterPerUnit[0]; |
---|
170 |
break; |
---|
171 |
|
---|
172 |
case "FEET": |
---|
173 |
$dfResult = $dfValue * $aMeterPerUnit[1]; |
---|
174 |
break; |
---|
175 |
|
---|
176 |
case "MILES": |
---|
177 |
$dfResult = $dfValue * $aMeterPerUnit[2]; |
---|
178 |
break; |
---|
179 |
|
---|
180 |
case "METERS": |
---|
181 |
$dfResult = $dfValue * $aMeterPerUnit[3]; |
---|
182 |
break; |
---|
183 |
|
---|
184 |
case "KILOMETERS": |
---|
185 |
$dfResult = $dfValue * $aMeterPerUnit[4]; |
---|
186 |
break; |
---|
187 |
|
---|
188 |
case "DEGREES": |
---|
189 |
$dfResult = $dfValue * $aMeterPerUnit[5]; |
---|
190 |
break; |
---|
191 |
|
---|
192 |
case "NAUTICAL MILES": |
---|
193 |
$dfResult = $dfValue * $aMeterPerUnit[6]; |
---|
194 |
break; |
---|
195 |
|
---|
196 |
default: |
---|
197 |
break; |
---|
198 |
} |
---|
199 |
|
---|
200 |
return $dfResult; |
---|
201 |
|
---|
202 |
} |
---|
203 |
|
---|
204 |
|
---|
205 |
|
---|
206 |
|
---|
207 |
function ConvertFromMeter($szInUnit, $dfValue) |
---|
208 |
{ |
---|
209 |
|
---|
210 |
|
---|
211 |
$dfResult = -1.0; |
---|
212 |
|
---|
213 |
$aUnitPerMeter = array(); |
---|
214 |
$aUnitPerMeter[0] = 39.37; |
---|
215 |
$aUnitPerMeter[1] = 3.2808; |
---|
216 |
$aUnitPerMeter[2] = 0.00062137; |
---|
217 |
$aUnitPerMeter[3] = 1.0; |
---|
218 |
$aUnitPerMeter[4] = 0.001; |
---|
219 |
$aUnitPerMeter[5] = 0.000009044; |
---|
220 |
$aUnitPerMeter[6] = 0.000539957; |
---|
221 |
|
---|
222 |
$szInUnit = trim(strtoupper($szInUnit)); |
---|
223 |
switch ($szInUnit) |
---|
224 |
{ |
---|
225 |
case "INCHES": |
---|
226 |
$dfResult = $dfValue * $aUnitPerMeter[0]; |
---|
227 |
break; |
---|
228 |
|
---|
229 |
case "FEET": |
---|
230 |
$dfResult = $dfValue * $aUnitPerMeter[1]; |
---|
231 |
break; |
---|
232 |
|
---|
233 |
case "MILES": |
---|
234 |
$dfResult = $dfValue * $aUnitPerMeter[2]; |
---|
235 |
break; |
---|
236 |
|
---|
237 |
case "METERS": |
---|
238 |
$dfResult = $dfValue * $aUnitPerMeter[3]; |
---|
239 |
break; |
---|
240 |
|
---|
241 |
case "KILOMETERS": |
---|
242 |
$dfResult = $dfValue * $aUnitPerMeter[4]; |
---|
243 |
break; |
---|
244 |
|
---|
245 |
case "DEGREES": |
---|
246 |
$dfResult = $dfValue * $aUnitPerMeter[5]; |
---|
247 |
break; |
---|
248 |
|
---|
249 |
case "NAUTICAL MILES": |
---|
250 |
$dfResult = $dfValue * $aUnitPerMeter[6]; |
---|
251 |
break; |
---|
252 |
|
---|
253 |
default: |
---|
254 |
break; |
---|
255 |
} |
---|
256 |
|
---|
257 |
return $dfResult; |
---|
258 |
|
---|
259 |
} |
---|
260 |
|
---|
261 |
|
---|
262 |
|
---|
263 |
|
---|
264 |
function ConvertUnit($szInUnit, $szOutUnit, $dfValue) |
---|
265 |
{ |
---|
266 |
$bInFound = $this->IsUnitValid($szInUnit); |
---|
267 |
$bOutFound = $this->IsUnitValid($szOutUnit); |
---|
268 |
|
---|
269 |
|
---|
270 |
if (!$bInFound || !$bOutFound) |
---|
271 |
{ |
---|
272 |
|
---|
273 |
return -1.0; |
---|
274 |
} |
---|
275 |
|
---|
276 |
$dfValue = $this->ConvertToMeter($szInUnit, $dfValue); |
---|
277 |
|
---|
278 |
$dfValue = $this->ConvertFromMeter($szOutUnit, $dfValue); |
---|
279 |
|
---|
280 |
|
---|
281 |
return $dfValue; |
---|
282 |
} |
---|
283 |
|
---|
284 |
|
---|
285 |
|
---|
286 |
|
---|
287 |
function GetJavascriptInitFunctions() |
---|
288 |
{ |
---|
289 |
$aReturn = array(); |
---|
290 |
|
---|
291 |
$aReturn = parent::GetJavascriptInitFunctions(); |
---|
292 |
|
---|
293 |
$szJsFunctionName = "RulerNMInit"; |
---|
294 |
$szFunction = "$szJsFunctionName();\n"; |
---|
295 |
$aReturn[$szJsFunctionName] = $szFunction; |
---|
296 |
|
---|
297 |
|
---|
298 |
return $aReturn; |
---|
299 |
} |
---|
300 |
|
---|
301 |
|
---|
302 |
|
---|
303 |
|
---|
304 |
function GetJavascriptIncludeFunctions() |
---|
305 |
{ |
---|
306 |
$aReturn = array(); |
---|
307 |
|
---|
308 |
$aReturn = parent::GetJavascriptIncludeFunctions(); |
---|
309 |
|
---|
310 |
$szJsIncludeName = "cwc_dhtml.js"; |
---|
311 |
$szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/cwc_dhtml.js\" type=\"text/javascript\"></script>"; |
---|
312 |
$aReturn[$szJsIncludeName] = $szInclude; |
---|
313 |
|
---|
314 |
$szJsIncludeName = "dhtmlapi.js"; |
---|
315 |
$szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/dhtmlapi.js\" type=\"text/javascript\"></script>"; |
---|
316 |
$aReturn[$szJsIncludeName] = $szInclude; |
---|
317 |
|
---|
318 |
$szJsIncludeName = "toolsobj.js"; |
---|
319 |
$szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/toolsobj.js\" type=\"text/javascript\"></script>"; |
---|
320 |
$aReturn[$szJsIncludeName] = $szInclude; |
---|
321 |
|
---|
322 |
$szJsIncludeName = "eventslib.js"; |
---|
323 |
$szInclude = "<script language=\"JavaScript\" src=\"".$_SESSION["gszCoreWebPath"]."/widgets/js/eventslib.js\" type=\"text/javascript\"></script>"; |
---|
324 |
$aReturn[$szJsIncludeName] = $szInclude; |
---|
325 |
return $aReturn; |
---|
326 |
} |
---|
327 |
|
---|
328 |
|
---|
329 |
|
---|
330 |
|
---|
331 |
function GetJavascriptOnMouseMoveFunctions() |
---|
332 |
{ |
---|
333 |
$aReturn = array(); |
---|
334 |
|
---|
335 |
$aReturn = parent::GetJavascriptOnMouseMoveFunctions(); |
---|
336 |
|
---|
337 |
$szJsFunctionName = "RulerNMWMouseMove"; |
---|
338 |
$szFunction = "$szJsFunctionName(e);\n"; |
---|
339 |
$aReturn[$szJsFunctionName] = $szFunction; |
---|
340 |
|
---|
341 |
return $aReturn; |
---|
342 |
} |
---|
343 |
|
---|
344 |
|
---|
345 |
|
---|
346 |
|
---|
347 |
function GetJavascriptFunctions() |
---|
348 |
{ |
---|
349 |
$oApp = GetChameleonApplication(); |
---|
350 |
$aReturn = array(); |
---|
351 |
|
---|
352 |
if (isset($this->maSharedResourceWidgets["CWCJSAPI"])) |
---|
353 |
$bCWCJSAPI = 1; |
---|
354 |
else |
---|
355 |
$bCWCJSAPI = 0; |
---|
356 |
|
---|
357 |
$aReturn = parent::GetJavascriptFunctions(); |
---|
358 |
|
---|
359 |
$szRulerNMPix = $oApp->findFile( "images/ruler_pix.gif" ); |
---|
360 |
$szRulerNMPix = $oApp->fileSystemToURL( $szRulerNMPix ); |
---|
361 |
$szRulerNMNode = $oApp->findFile( "images/ruler_node.gif" ); |
---|
362 |
$szRulerNMNode = $oApp->fileSystemToURL( $szRulerNMNode ); |
---|
363 |
|
---|
364 |
$szJsFunctionName = "RulerNMInit"; |
---|
365 |
$szFunction = <<<EOT |
---|
366 |
/** |
---|
367 |
* {$szJsFunctionName} |
---|
368 |
* called to initialize the ruler widget. |
---|
369 |
*/ |
---|
370 |
function {$szJsFunctionName}() |
---|
371 |
{ |
---|
372 |
// draw all distance points |
---|
373 |
//drawDistPt(); |
---|
374 |
var sId = ""; |
---|
375 |
var content = "<IMG SRC='{$szRulerNMPix}'><BR>"; |
---|
376 |
var content2 = "<IMG SRC='{$szRulerNMNode}'><BR>"; |
---|
377 |
for (var i=1; i<= gRulerNbPoints; i++) |
---|
378 |
{ |
---|
379 |
sId = "pix"+i; |
---|
380 |
CWCDHTML_CreateLayer(sId, -10, -10, 10, 10, false, content); |
---|
381 |
CWCDHTML_SetLayerZOrder( sId, 20 ); |
---|
382 |
|
---|
383 |
sId = "pInf"+i; |
---|
384 |
CWCDHTML_CreateLayer(sId, -10, -10, 10, 10, false, content2); |
---|
385 |
CWCDHTML_SetLayerZOrder( sId, 20 ); |
---|
386 |
|
---|
387 |
} |
---|
388 |
// instantiate the distancetool object |
---|
389 |
//MapLayerDiv is created in MapDHTMLWidget.php. |
---|
390 |
//gMapWhspc and gMapWvspc are created in MapDHTMLWidget and are |
---|
391 |
//the TL position of the map. |
---|
392 |
DistTool = new distancetool(getObject("MapLayerDiv"), gRulerNbPoints, |
---|
393 |
gMapWhspc, gMapWvspc); |
---|
394 |
|
---|
395 |
// initialize mouse event for the layer named 'MapLayerDiv' |
---|
396 |
//setMapDraggable("MapLayerDiv"); |
---|
397 |
} |
---|
398 |
EOT; |
---|
399 |
|
---|
400 |
$aReturn[$szJsFunctionName] = $szFunction; |
---|
401 |
|
---|
402 |
$szJsFunctionName = "RulerNMWMouseMove"; |
---|
403 |
$szFunction = <<<EOT |
---|
404 |
/** |
---|
405 |
* {$szJsFunctionName} |
---|
406 |
* called when the mouse moves for the RulerNM widget. |
---|
407 |
*/ |
---|
408 |
function {$szJsFunctionName}(e) |
---|
409 |
{ |
---|
410 |
|
---|
411 |
//make sure that the forms varaibales are initialized. |
---|
412 |
//It seems like that in IE, the mouse move may be called before. |
---|
413 |
if ({$this->mszHTMLForm} == null || |
---|
414 |
{$this->mszHTMLForm}.NAV_CMD == null) |
---|
415 |
return true; |
---|
416 |
|
---|
417 |
if({$this->mszHTMLForm}.NAV_CMD.value != "RULER") |
---|
418 |
{ |
---|
419 |
//if ruler result is present rest the text field. |
---|
420 |
if ({$this->mszHTMLForm}.RULER_RESULT != null) |
---|
421 |
{ |
---|
422 |
{$this->mszHTMLForm}.RULER_RESULT.value = ""; |
---|
423 |
} |
---|
424 |
|
---|
425 |
//reset the first click. |
---|
426 |
gRulerfirstClickDist = true; |
---|
427 |
|
---|
428 |
if (gRulerHideLayers) |
---|
429 |
{ |
---|
430 |
for(var i=1; i<=gRulerNbPoints; i++) |
---|
431 |
{ |
---|
432 |
hide("pix" + i); |
---|
433 |
} |
---|
434 |
for(var i=1; i<=gRulerNbPoints; i++) |
---|
435 |
{ |
---|
436 |
hide("pInf" + i); |
---|
437 |
} |
---|
438 |
//lets only do this once :) |
---|
439 |
gRulerHideLayers = false; |
---|
440 |
} |
---|
441 |
|
---|
442 |
//remove handlers if they were ours |
---|
443 |
if (document.onDblClick==stopDist) |
---|
444 |
document.onDblClick = null; |
---|
445 |
if (document.onKeyPress==stopDist) |
---|
446 |
document.onKeyPress= null; |
---|
447 |
|
---|
448 |
return true; |
---|
449 |
} |
---|
450 |
|
---|
451 |
//ruler tool is active |
---|
452 |
var obj = "MapLayerDiv"; |
---|
453 |
if (isNav4 || isNav6) |
---|
454 |
{ |
---|
455 |
document.captureEvents(Event.MOUSEDOWN); |
---|
456 |
document.captureEvents(Event.MOUSEMOVE); |
---|
457 |
document.captureEvents(Event.DBLCLICK); |
---|
458 |
document.captureEvents(Event.RESIZE); |
---|
459 |
} |
---|
460 |
if(isNav4) |
---|
461 |
{ |
---|
462 |
getObject(obj).onmouseout= mouseOutMap; |
---|
463 |
document.onmousedown=startDist; |
---|
464 |
document.onDblClick=stopDist ; |
---|
465 |
document.onKeyPress=stopDist; |
---|
466 |
} |
---|
467 |
else if (isIE4 || isNav6) |
---|
468 |
{ |
---|
469 |
var layer = document.getElementById("MapLayerDiv"); |
---|
470 |
document.onmousedown=startDist; |
---|
471 |
document.ondblclick=stopDist; |
---|
472 |
document.onkeypress=stopDist; |
---|
473 |
//layer.onmouseout=outIE; |
---|
474 |
if (isNav6) |
---|
475 |
{ |
---|
476 |
document.addEventListener("dblclick",stopDist,true); |
---|
477 |
document.addEventListener("keypress",stopDist,true); |
---|
478 |
} |
---|
479 |
|
---|
480 |
} |
---|
481 |
distIt(e); |
---|
482 |
} |
---|
483 |
EOT; |
---|
484 |
$aReturn[$szJsFunctionName] = $szFunction; |
---|
485 |
|
---|
486 |
if ($bCWCJSAPI) |
---|
487 |
{ |
---|
488 |
|
---|
489 |
$szJsFunctionName = "RulerNMWRegisterForEvent"; |
---|
490 |
$szFunction = <<<EOT |
---|
491 |
/** |
---|
492 |
* {$szJsFunctionName} |
---|
493 |
* called to register and even when the map extents chnages (JSAPI) |
---|
494 |
*/ |
---|
495 |
function {$szJsFunctionName}() |
---|
496 |
{ |
---|
497 |
goCWCJSAPI.RegisterEvent(MAP_EXTENT_CHANGED, "RulerNMWMapExtentsChanged"); |
---|
498 |
} |
---|
499 |
EOT; |
---|
500 |
|
---|
501 |
$aReturn[$szJsFunctionName] = $szFunction; |
---|
502 |
|
---|
503 |
$szJsFunctionName = "RulerNMWMapExtentsChanged"; |
---|
504 |
$szFunction = <<<EOT |
---|
505 |
/** |
---|
506 |
* {$szJsFunctionName} |
---|
507 |
* called when the mapextents are changed to update the ruler global variables(JSAPI) |
---|
508 |
*/ |
---|
509 |
function {$szJsFunctionName}() |
---|
510 |
{ |
---|
511 |
gRulercMapWidth = goCWCJSAPI.oMap.width; |
---|
512 |
gRulercMapHeight = goCWCJSAPI.oMap.height; |
---|
513 |
gRulermapMinX = goCWCJSAPI.oMap.minx; |
---|
514 |
gRulermapMaxY = goCWCJSAPI.oMap.maxx; |
---|
515 |
|
---|
516 |
dfPixelSize = (goCWCJSAPI.oMap.maxx - goCWCJSAPI.oMap.minx)/goCWCJSAPI.oMap.width; |
---|
517 |
|
---|
518 |
szMapUnit = goCWCJSAPI.oMap.GetUnitString(goCWCJSAPI.oMap.units); |
---|
519 |
|
---|
520 |
gRulergblPixelSize = goCWCJSAPI.oMap.ConvertUnit(szMapUnit, gRulerUserUnit, dfPixelSize); |
---|
521 |
|
---|
522 |
} |
---|
523 |
EOT; |
---|
524 |
|
---|
525 |
$aReturn[$szJsFunctionName] = $szFunction; |
---|
526 |
} |
---|
527 |
|
---|
528 |
return $aReturn; |
---|
529 |
} |
---|
530 |
|
---|
531 |
|
---|
532 |
|
---|
533 |
|
---|
534 |
|
---|
535 |
function GetJavascriptVariables() |
---|
536 |
{ |
---|
537 |
if (isset($this->moMapObject)) |
---|
538 |
{ |
---|
539 |
$poMap = $this->moMapObject->oMap; |
---|
540 |
|
---|
541 |
$dfPixelSize = ($poMap->extent->maxx - $poMap->extent->minx)/ |
---|
542 |
$poMap->width; |
---|
543 |
$nUnits = $this->moMapObject->oMap->units; |
---|
544 |
} |
---|
545 |
else |
---|
546 |
{ |
---|
547 |
if (!defined( "MS_INCHES" )) |
---|
548 |
{ |
---|
549 |
define( "MS_INCHES", 0 ); |
---|
550 |
define( "MS_FEET", 1 ); |
---|
551 |
define( "MS_MILES", 2 ); |
---|
552 |
define( "MS_METERS", 3 ); |
---|
553 |
define( "MS_KILOMETERS", 4 ); |
---|
554 |
define( "MS_DEGREES", 5 ); |
---|
555 |
define( "MS_PIXELS", 6 ); |
---|
556 |
define( "MS_DD", 7 ); |
---|
557 |
define( "MS_NAUTICALMILES", 8 ); |
---|
558 |
} |
---|
559 |
$nUnits = 3; |
---|
560 |
$dfPixelSize = 1; |
---|
561 |
} |
---|
562 |
|
---|
563 |
$szUserUnit = ""; |
---|
564 |
if (isset($this->maParams["UNITS"])) |
---|
565 |
$szUserUnit = strtoupper($this->maParams["UNITS"]); |
---|
566 |
|
---|
567 |
$szMapUnits = ""; |
---|
568 |
switch ($nUnits) |
---|
569 |
{ |
---|
570 |
case MS_INCHES: |
---|
571 |
$szMapUnits = trim($this->moMLT->get("6", "Inches")); |
---|
572 |
break; |
---|
573 |
|
---|
574 |
case MS_FEET: |
---|
575 |
$szMapUnits = trim($this->moMLT->get("7", "Feet")); |
---|
576 |
break; |
---|
577 |
|
---|
578 |
case MS_MILES: |
---|
579 |
$szMapUnits = trim($this->moMLT->get("8", "Miles")); |
---|
580 |
break; |
---|
581 |
|
---|
582 |
case MS_METERS: |
---|
583 |
$szMapUnits = trim($this->moMLT->get("9", "Meters")); |
---|
584 |
break; |
---|
585 |
|
---|
586 |
case MS_KILOMETERS: |
---|
587 |
$szMapUnits = trim($this->moMLT->get("10", "Kilometers")); |
---|
588 |
break; |
---|
589 |
|
---|
590 |
case MS_DD: |
---|
591 |
$szMapUnits = trim($this->moMLT->get("11", "Degrees")); |
---|
592 |
break; |
---|
593 |
|
---|
594 |
case MS_PIXELS: |
---|
595 |
$szMapUnits = trim($this->moMLT->get("12", "Pixels")); |
---|
596 |
break; |
---|
597 |
|
---|
598 |
case MS_NAUTICALMILES: |
---|
599 |
$szMapUnits = trim($this->moMLT->get("24", "Nautical Miles")); |
---|
600 |
break; |
---|
601 |
} |
---|
602 |
|
---|
603 |
|
---|
604 |
|
---|
605 |
|
---|
606 |
|
---|
607 |
if ($szMapUnits != "" && $szUserUnit != "" && |
---|
608 |
$szUserUnit != $szMapUnits) |
---|
609 |
{ |
---|
610 |
|
---|
611 |
$dfPixelSize = |
---|
612 |
$this->ConvertUnit($szMapUnits, $szUserUnit, $dfPixelSize); |
---|
613 |
|
---|
614 |
|
---|
615 |
|
---|
616 |
if ($dfPixelSize > 0) |
---|
617 |
$szUnits = $szUserUnit; |
---|
618 |
else |
---|
619 |
{ |
---|
620 |
$_SESSION['gErrorManager']->setError(ERR_WARNING, |
---|
621 |
trim($this->moMLT->get("22", "ERROR: Unit value could not be used in RulerNM.widget.php."))); |
---|
622 |
$szUnits = trim($this->moMLT->get("12", "Pixels")); |
---|
623 |
$dfPixelSize = 1.0; |
---|
624 |
} |
---|
625 |
} |
---|
626 |
else |
---|
627 |
{ |
---|
628 |
$szUnits = $szMapUnits; |
---|
629 |
} |
---|
630 |
|
---|
631 |
$szUserUnit = $szUnits; |
---|
632 |
$szUnits = $this->GetUnitAbbbreviation($szUnits); |
---|
633 |
|
---|
634 |
$aReturn = array(); |
---|
635 |
$aReturn = parent::GetJavascriptVariables(); |
---|
636 |
|
---|
637 |
$szVariable = "gRulergblPixelSize"; |
---|
638 |
$szValue = " var $szVariable = $dfPixelSize;\n"; |
---|
639 |
$aReturn[$szVariable] = $szValue; |
---|
640 |
|
---|
641 |
$szVariable = "gRulermapMinX"; |
---|
642 |
if (is_object($this->moMapObject)) |
---|
643 |
{ |
---|
644 |
$nMinX = $poMap->extent->minx; |
---|
645 |
} |
---|
646 |
else |
---|
647 |
$nMinX = 0; |
---|
648 |
$szValue = " var $szVariable = ".$nMinX.";\n"; |
---|
649 |
$aReturn[$szVariable] = $szValue; |
---|
650 |
|
---|
651 |
$szVariable = "gRulermapMaxY"; |
---|
652 |
if (is_object($this->moMapObject)) |
---|
653 |
{ |
---|
654 |
$nMaxX = $poMap->extent->maxx; |
---|
655 |
} |
---|
656 |
else |
---|
657 |
$nMaxX = 0; |
---|
658 |
$szValue = " var $szVariable = ".$nMaxX.";\n"; |
---|
659 |
$aReturn[$szVariable] = $szValue; |
---|
660 |
|
---|
661 |
$szVariable = "gRulerMapImgOX"; |
---|
662 |
$szValue = " var $szVariable = gMapWhspc;\n"; |
---|
663 |
$aReturn[$szVariable] = $szValue; |
---|
664 |
|
---|
665 |
$szVariable = "gRulerMapImgOY"; |
---|
666 |
$szValue = " var $szVariable = gMapWvspc;\n"; |
---|
667 |
$aReturn[$szVariable] = $szValue; |
---|
668 |
|
---|
669 |
$szVariable = "gRulerCurrentTool"; |
---|
670 |
$szValue = " var $szVariable = \"distance\";\n"; |
---|
671 |
$aReturn[$szVariable] = $szValue; |
---|
672 |
|
---|
673 |
$szVariable = "gRulerfirstClickDist"; |
---|
674 |
$szValue = " var $szVariable = \"true\";\n"; |
---|
675 |
$aReturn[$szVariable] = $szValue; |
---|
676 |
|
---|
677 |
$szVariable = "gRulercMapWidth"; |
---|
678 |
if (is_object($this->moMapObject)) |
---|
679 |
{ |
---|
680 |
$nWidth = $poMap->width; |
---|
681 |
} |
---|
682 |
else |
---|
683 |
$nWidth = 1; |
---|
684 |
$szValue = " var $szVariable = ".$nWidth.";\n"; |
---|
685 |
$aReturn[$szVariable] = $szValue; |
---|
686 |
|
---|
687 |
$szVariable = "gRulercMapHeight"; |
---|
688 |
if (is_object($this->moMapObject)) |
---|
689 |
{ |
---|
690 |
$nHeight = $poMap->height; |
---|
691 |
} |
---|
692 |
else |
---|
693 |
$nHeight = 1; |
---|
694 |
$szValue = " var $szVariable = ".$nHeight.";\n"; |
---|
695 |
$aReturn[$szVariable] = $szValue; |
---|
696 |
|
---|
697 |
$szVariable = "gRulerg_digitTool"; |
---|
698 |
$szValue = " var $szVariable = \"true\";\n"; |
---|
699 |
$aReturn[$szVariable] = $szValue; |
---|
700 |
|
---|
701 |
$szVariable = "gRulerg_end_digit"; |
---|
702 |
$szValue = " var $szVariable = \"false\";\n"; |
---|
703 |
$aReturn[$szVariable] = $szValue; |
---|
704 |
|
---|
705 |
$szVariable = "gRulerareaMode"; |
---|
706 |
$szValue = " var $szVariable = \"false\";\n"; |
---|
707 |
$aReturn[$szVariable] = $szValue; |
---|
708 |
|
---|
709 |
$szVariable = "gRulerareaString"; |
---|
710 |
$szValue = " var $szVariable = \"\";\n"; |
---|
711 |
$aReturn[$szVariable] = $szValue; |
---|
712 |
|
---|
713 |
$szVariable = "gRulersUnits"; |
---|
714 |
$szValue = " var $szVariable = \"$szUnits\";\n"; |
---|
715 |
$aReturn[$szVariable] = $szValue; |
---|
716 |
|
---|
717 |
$szVariable = "gRulerHideLayers"; |
---|
718 |
$szValue = " var $szVariable = 0;\n"; |
---|
719 |
$aReturn[$szVariable] = $szValue; |
---|
720 |
|
---|
721 |
$szVariable = "gRulerFirstUse"; |
---|
722 |
$szValue = " var $szVariable = true;\n"; |
---|
723 |
$aReturn[$szVariable] = $szValue; |
---|
724 |
|
---|
725 |
$nPoints = $this->mnNumberOfPoints; |
---|
726 |
if (isset($this->maParams["NUMBEROFPOINTS"])) |
---|
727 |
$nPoints = intval($this->maParams["NUMBEROFPOINTS"]); |
---|
728 |
|
---|
729 |
$szVariable = "gRulerNbPoints"; |
---|
730 |
$szValue = " var $szVariable = $nPoints;\n"; |
---|
731 |
$aReturn[$szVariable] = $szValue; |
---|
732 |
|
---|
733 |
$szVariable = "gRulerUserUnit"; |
---|
734 |
$szValue = " var $szVariable = \"$szUserUnit\";\n"; |
---|
735 |
$aReturn[$szVariable] = $szValue; |
---|
736 |
|
---|
737 |
$nSpaceBetween = $this->mnSpaceBetweenPoints; |
---|
738 |
if (isset($this->maParams["SPACEBETWEENPOINTS"])) |
---|
739 |
$nSpaceBetween = intval($this->maParams["SPACEBETWEENPOINTS"]); |
---|
740 |
if ($nSpaceBetween <=0) |
---|
741 |
$nSpaceBetween = $this->mnSpaceBetweenPoints; |
---|
742 |
|
---|
743 |
$szVariable = "gRulerSpaceBetweenPoints"; |
---|
744 |
$szValue = " var $szVariable = $nSpaceBetween;\n"; |
---|
745 |
$aReturn[$szVariable] = $szValue; |
---|
746 |
|
---|
747 |
return $aReturn; |
---|
748 |
} |
---|
749 |
|
---|
750 |
|
---|
751 |
|
---|
752 |
|
---|
753 |
|
---|
754 |
|
---|
755 |
function GetJavascriptOnLoadFunctions() |
---|
756 |
{ |
---|
757 |
$aReturn = array(); |
---|
758 |
|
---|
759 |
$aReturn = parent::GetJavascriptOnLoadFunctions(); |
---|
760 |
|
---|
761 |
if (isset($this->maSharedResourceWidgets["CWCJSAPI"])) |
---|
762 |
{ |
---|
763 |
$szJsFunctionName = "RulerNMWRegisterForEvent"; |
---|
764 |
$szFunction = "$szJsFunctionName();\n"; |
---|
765 |
$aReturn[$szJsFunctionName] = $szFunction; |
---|
766 |
} |
---|
767 |
|
---|
768 |
return $aReturn; |
---|
769 |
} |
---|
770 |
|
---|
771 |
} |
---|
772 |
?> |
---|
773 |
|
---|