Files
rappaurio-sae501_502/app/node_modules/cejs/_documents/JsDoc/symbols/src/D__USB_cgi-bin_lib_JS_net_map.origin.js.html
2023-09-25 13:27:24 +02:00

1916 lines
425 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style>
.KEYW {color: #933;}
.COMM {color: #bbb; font-style: italic;}
.NUMB {color: #393;}
.STRN {color: #393;}
.REGX {color: #339;}
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
</style></head><body><pre><span class='line'> 1</span> <span class="TOKN"></span><span class="WHIT">
<span class='line'> 2</span> </span><span class="COMM">/**
<span class='line'> 3</span> * @name CeL map function
<span class='line'> 4</span> * @fileoverview
<span class='line'> 5</span> * 本檔案包含了 map 的 functions。
<span class='line'> 6</span> * @since
<span class='line'> 7</span> */</span><span class="WHIT">
<span class='line'> 8</span>
<span class='line'> 9</span>
<span class='line'> 10</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">CeL</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 11</span>
<span class='line'> 12</span> </span><span class="COMM">/**
<span class='line'> 13</span> * 本 module 之 name(id)&lt;span style="text-decoration:line-through;">不設定時會從呼叫時之 path 取得&lt;/span>。
<span class='line'> 14</span> * @type String
<span class='line'> 15</span> * @constant
<span class='line'> 16</span> * @inner
<span class='line'> 17</span> * @ignore
<span class='line'> 18</span> */</span><span class="WHIT">
<span class='line'> 19</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'net.map'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 20</span>
<span class='line'> 21</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
<span class='line'> 22</span> </span><span class="COMM">/**
<span class='line'> 23</span> * 若欲 include 整個 module 時,需囊括之 code。
<span class='line'> 24</span> * @type Function
<span class='line'> 25</span> * @param {Function} library_namespace namespace of library
<span class='line'> 26</span> * @param load_arguments 呼叫時之 argument(s)
<span class='line'> 27</span> * @return
<span class='line'> 28</span> * @name CeL.net.map
<span class='line'> 29</span> * @constant
<span class='line'> 30</span> * @inner
<span class='line'> 31</span> * @ignore
<span class='line'> 32</span> */</span><span class="WHIT">
<span class='line'> 33</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">library_namespace</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">load_arguments</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 34</span>
<span class='line'> 35</span>
<span class='line'> 36</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 37</span> </span><span class="COMM">//requires</span><span class="WHIT">
<span class='line'> 38</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.use</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'data'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'net.web'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'> 39</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 40</span> </span><span class="COMM">// module_name 會被重設</span><span class="WHIT">
<span class='line'> 41</span> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_module_name</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 42</span>
<span class='line'> 43</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">XML_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.XML_node</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 44</span> </span><span class="NAME">set_attribute</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.set_attribute</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 45</span> </span><span class="NAME">remove_all_child</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.remove_all_child</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 46</span> </span><span class="NAME">set_class</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.set_class</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 47</span> </span><span class="NAME">split_String_to_Object</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.data.split_String_to_Object</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 48</span>
<span class='line'> 49</span>
<span class='line'> 50</span> </span><span class="COMM">/**
<span class='line'> 51</span> * null module constructor
<span class='line'> 52</span> * @class map 的 functions
<span class='line'> 53</span> */</span><span class="WHIT">
<span class='line'> 54</span> </span><span class="NAME">CeL.net.map</span><span class="WHIT">
<span class='line'> 55</span> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 56</span> </span><span class="WHIT"> </span><span class="COMM">// null module constructor</span><span class="WHIT">
<span class='line'> 57</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 58</span>
<span class='line'> 59</span> </span><span class="COMM">/**
<span class='line'> 60</span> * for JSDT: 有 prototype 才會將之當作 Class
<span class='line'> 61</span> */</span><span class="WHIT">
<span class='line'> 62</span> </span><span class="NAME">CeL.net.map</span><span class="WHIT">
<span class='line'> 63</span> </span><span class="PUNC">.</span><span class="NAME">prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 64</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 65</span>
<span class='line'> 66</span>
<span class='line'> 67</span>
<span class='line'> 68</span>
<span class='line'> 69</span>
<span class='line'> 70</span>
<span class='line'> 71</span>
<span class='line'> 72</span>
<span class='line'> 73</span> </span><span class="COMM">// init function</span><span class="WHIT">
<span class='line'> 74</span>
<span class='line'> 75</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">SL</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Debug.log</span><span class="PUNC">,</span><span class="NAME">sl</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">SL.log.apply</span><span class="PUNC">(</span><span class="NAME">SL</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">err</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">SL.err.apply</span><span class="PUNC">(</span><span class="NAME">SL</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">warn</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">SL.warn.apply</span><span class="PUNC">(</span><span class="NAME">SL</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 76</span>
<span class='line'> 77</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">gMap</span><span class="PUNC">,</span><span class="NAME">mapO</span><span class="PUNC">,</span><span class="NAME">mData</span><span class="PUNC">,</span><span class="NAME">lostItem</span><span class="PUNC">,</span><span class="NAME">gLocal</span><span class="PUNC">,</span><span class="NAME">dLoc</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="NAME">tw</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="NUMB">23.7</span><span class="PUNC">,</span><span class="NUMB">121</span><span class="PUNC">]</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 台灣: 23.7,121</span><span class="WHIT">
<span class='line'> 78</span>
<span class='line'> 79</span>
<span class='line'> 80</span> </span><span class="NAME">addLoad</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 81</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">SL.setBoard</span><span class="PUNC">(</span><span class="STRN">'log'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 82</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">window.location.protocol</span><span class="PUNC">==</span><span class="STRN">'file:'</span><span class="PUNC">&&</span><span class="NAME">b</span><span class="PUNC">)</span><span class="NAME">b.style.display</span><span class="PUNC">=</span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 強制顯示 log</span><span class="WHIT">
<span class='line'> 83</span>
<span class='line'> 84</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">init</span><span class="PUNC">&&</span><span class="NAME">init.run</span><span class="PUNC">)</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'Page loaded. Prepare to initial..'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 85</span>
<span class='line'> 86</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'GMap does not loaded.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 87</span>
<span class='line'> 88</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">dLoc</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'> 89</span> </span><span class="WHIT"> </span><span class="NAME">dLoc</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">dLoc</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">dLoc</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 90</span>
<span class='line'> 91</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'init(0);'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 92</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 93</span>
<span class='line'> 94</span> </span><span class="NAME">init.run</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 95</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">init</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">arguments.callee.run</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 97</span>
<span class='line'> 98</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 99</span> </span><span class="WHIT"> </span><span class="KEYW">switch</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>100</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>101</span> </span><span class="WHIT"> </span><span class="NAME">setSize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>102</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">preLoadMap</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">preLoadMap</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>103</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>104</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>105</span> </span><span class="WHIT"> </span><span class="NAME">catchFile.sn</span><span class="PUNC">=</span><span class="STRN">'map-files'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>106</span> </span><span class="WHIT"> </span><span class="NAME">catchFile.f</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">url</span><span class="PUNC">,</span><span class="NAME">success</span><span class="PUNC">,</span><span class="NAME">captureId</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>107</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'Capture '</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">success</span><span class="PUNC">?</span><span class="STRN">'succeeded'</span><span class="PUNC">:</span><span class="STRN">'failed'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">': &lt;a href="'</span><span class="PUNC">+</span><span class="NAME">url</span><span class="PUNC">+</span><span class="STRN">'">'</span><span class="PUNC">+</span><span class="NAME">url</span><span class="PUNC">+</span><span class="STRN">'&lt;/a>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>108</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>109</span> </span><span class="WHIT"> </span><span class="NAME">catchFile</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="WHIT">
<span class='line'>110</span> </span><span class="WHIT"> </span><span class="STRN">'map.js'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>111</span> </span><span class="WHIT"> </span><span class="STRN">'map.css'</span><span class="WHIT">
<span class='line'>112</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>113</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>114</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>115</span> </span><span class="WHIT"> </span><span class="NAME">initMap</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>116</span> </span><span class="WHIT"> </span><span class="NAME">initSearch</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>117</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">window.location.protocol</span><span class="PUNC">==</span><span class="STRN">'file:'</span><span class="PUNC">)</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'mapO.removeTM();'</span><span class="PUNC">,</span><span class="NUMB">3000</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 3000: 適当。隨 client 而有不同。</span><span class="WHIT">
<span class='line'>118</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>119</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>120</span> </span><span class="WHIT"> </span><span class="NAME">readLoc</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>121</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>122</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>123</span> </span><span class="WHIT"> </span><span class="NAME">loadMapData</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>124</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>125</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>126</span> </span><span class="WHIT"> </span><span class="NAME">placeMapItem</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>127</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>128</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">++</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>129</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">additionalFunc</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">additionalFunc</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>130</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>131</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>132</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="STRN">'Starting initial process. Catch files..'</span><span class="PUNC">,</span><span class="STRN">'Catch done. Initial all components..'</span><span class="PUNC">,</span><span class="STRN">'Map loaded. Loading address records..'</span><span class="PUNC">,</span><span class="STRN">'address loaded. Loading map data..'</span><span class="PUNC">,</span><span class="STRN">'map data loaded. placing map items..'</span><span class="PUNC">,</span><span class="STRN">'placing done. Do additional works..'</span><span class="PUNC">,</span><span class="STRN">'Initial done.'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>133</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'init: '</span><span class="PUNC">+</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>134</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">arguments.callee.run</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">m.length</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>135</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'init('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>136</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>137</span>
<span class='line'>138</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setOverviewMap</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>139</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">mapO.overviewMap</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>140</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">m.getOverviewMap</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>141</span> </span><span class="WHIT"> </span><span class="COMM">// 因為有時來不及反應,所以放這邊。</span><span class="WHIT">
<span class='line'>142</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">i</span><span class="PUNC">)</span><span class="NAME">n.addControl</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GMenuMapTypeControl</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'setOverviewMap(1);'</span><span class="PUNC">,</span><span class="NUMB">500</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>143</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">m.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>144</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="COMM">/*m.show(),*/</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'setOverviewMap();'</span><span class="PUNC">,</span><span class="NUMB">500</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>145</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>146</span>
<span class='line'>147</span>
<span class='line'>148</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">initSearch</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>149</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">google</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">google.load</span><span class="PUNC">)</span><span class="NAME">google.load</span><span class="PUNC">(</span><span class="STRN">"search"</span><span class="PUNC">,</span><span class="STRN">"1"</span><span class="PUNC">,</span><span class="PUNC">{</span><span class="NAME">callback</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>150</span> </span><span class="WHIT"> </span><span class="NAME">gLocal</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">getSearch</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>151</span> </span><span class="WHIT"> </span><span class="NAME">google.search.LocalSearch.resizeStaticMapUrl</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">,</span><span class="NUMB">100</span><span class="PUNC">,</span><span class="NUMB">140</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>152</span> </span><span class="WHIT"> </span><span class="NAME">mapO.setLatLng</span><span class="PUNC">(</span><span class="NAME">r.address</span><span class="PUNC">||</span><span class="NAME">r.titleNoFormatting</span><span class="PUNC">,</span><span class="NAME">r.lat</span><span class="PUNC">,</span><span class="NAME">r.lng</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>153</span> </span><span class="WHIT"> </span><span class="NAME">sA</span><span class="PUNC">(</span><span class="NAME">r.address</span><span class="PUNC">,</span><span class="NAME">r.titleNoFormatting</span><span class="PUNC">,</span><span class="NAME">r.phone.join</span><span class="PUNC">(</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">+</span><span class="NAME">r.address</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>154</span> </span><span class="WHIT"> </span><span class="COMM">// http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GlocalResult</span><span class="WHIT">
<span class='line'>155</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">=</span><span class="STRN">'&lt;div style="background-color:#fef;margin-left:3em;margin-right:3em;padding-top:.5em;padding-bottom:.5em;font-size:.8em;clear:both;margin-bottom:40px;">&lt;b onclick="sA(\''</span><span class="PUNC">+</span><span class="NAME">UnicodeToHTML</span><span class="PUNC">(</span><span class="NAME">r.address</span><span class="PUNC">,</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'\',\''</span><span class="PUNC">+</span><span class="NAME">UnicodeToHTML</span><span class="PUNC">(</span><span class="NAME">r.titleNoFormatting</span><span class="PUNC">,</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'\',\''</span><span class="PUNC">+</span><span class="NAME">UnicodeToHTML</span><span class="PUNC">(</span><span class="NAME">r.phone.join</span><span class="PUNC">(</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">+</span><span class="NAME">r.address</span><span class="PUNC">,</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'\');" title="'</span><span class="PUNC">+</span><span class="NAME">r.titleNoFormatting</span><span class="PUNC">+</span><span class="STRN">'" style="color:#94e;cursor:pointer;">&lt;img style="margin-top:-.5em;float:left;margin-right:1em;" src="'</span><span class="PUNC">+</span><span class="NAME">r.staticMapUrl</span><span class="PUNC">+</span><span class="STRN">'"/>'</span><span class="PUNC">+</span><span class="NAME">r.title</span><span class="WHIT">
<span class='line'>156</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'&lt;/b>&lt;br/>'</span><span class="PUNC">+</span><span class="NAME">r.address</span><span class="PUNC">+</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">+</span><span class="NAME">r.phone.join</span><span class="PUNC">(</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">r.phone.length</span><span class="PUNC">?</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="COMM">/*+r.listingType+'&lt;br/>'*/</span><span class="PUNC">+</span><span class="NAME">r.content</span><span class="PUNC">+</span><span class="STRN">'&lt;br/>('</span><span class="PUNC">+</span><span class="NAME">r.lat</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">r.lng</span><span class="PUNC">+</span><span class="STRN">') &lt;a href="'</span><span class="PUNC">+</span><span class="NAME">r.url</span><span class="PUNC">+</span><span class="STRN">'" target="_blank">Use Google Maps&lt;/a>&lt;/div>'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>157</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">sA2.c</span><span class="PUNC">)</span><span class="NAME">sA2.c.innerHTML</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">h</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>158</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="STRN">'Local'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>159</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'initSearch: local search initialed.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>160</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>161</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'initSearch: Can not initial local search. Please load API.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>162</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>163</span>
<span class='line'>164</span>
<span class='line'>165</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_map_tmp_message</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>166</span> </span><span class="NAME">initMap.flag</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="NAME">backgroundColor</span><span class="PUNC">:</span><span class="STRN">'#DDE'</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>167</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">initMap</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>168</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>169</span> </span><span class="WHIT"> </span><span class="NAME">mapO</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">gMap</span><span class="PUNC">(</span><span class="STRN">'map_canvas'</span><span class="PUNC">,</span><span class="NAME">dLoc.tw</span><span class="PUNC">,</span><span class="NAME">_f.flag</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>170</span> </span><span class="WHIT"> </span><span class="COMM">//if(!mapO)return 1;</span><span class="WHIT">
<span class='line'>171</span>
<span class='line'>172</span> </span><span class="WHIT"> </span><span class="COMM">//mapO.geocoder.setBaseCountryCode('TW');</span><span class="WHIT">
<span class='line'>173</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'initMap: set geocoder country code: '</span><span class="PUNC">+</span><span class="NAME">mapO.geocoder.getBaseCountryCode</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>174</span>
<span class='line'>175</span> </span><span class="WHIT"> </span><span class="COMM">// 要先 show 才能得到 getOverviewMap()</span><span class="WHIT">
<span class='line'>176</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">mapO.overviewMap</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>177</span> </span><span class="WHIT"> </span><span class="COMM">// IE7 上 .hide() 時 .show() 會出錯</span><span class="WHIT">
<span class='line'>178</span> </span><span class="WHIT"> </span><span class="COMM">// 2008/9/6 22:37:33 IE6 也會出錯了</span><span class="WHIT">
<span class='line'>179</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">navigator.userAgent.indexOf</span><span class="PUNC">(</span><span class="STRN">'MSIE'</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>180</span> </span><span class="WHIT"> </span><span class="NAME">m.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">setOverviewMap</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>181</span>
<span class='line'>182</span> </span><span class="WHIT"> </span><span class="COMM">// small mark template http://econym.googlepages.com/custom.htm http://mapki.com/wiki/Available_Images http://econym.googlepages.com/geicons.htm http://code.google.com/apis/maps/documentation/overlays.html#Icons_overview</span><span class="WHIT">
<span class='line'>183</span> </span><span class="WHIT"> </span><span class="COMM">// iconSize 的處理還是有問題。</span><span class="WHIT">
<span class='line'>184</span> </span><span class="WHIT"> </span><span class="NAME">mapO.icon</span><span class="PUNC">(</span><span class="NAME">_f.iconOption</span><span class="PUNC">||</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>185</span> </span><span class="WHIT"> </span><span class="NAME">shadow</span><span class="PUNC">:</span><span class="STRN">'http://labs.google.com/ridefinder/images/mm_20_shadow.png'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>186</span> </span><span class="WHIT"> </span><span class="NAME">iconSize</span><span class="PUNC">:</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GSize</span><span class="PUNC">(</span><span class="NUMB">12</span><span class="PUNC">,</span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>187</span> </span><span class="WHIT"> </span><span class="NAME">shadowSize</span><span class="PUNC">:</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GSize</span><span class="PUNC">(</span><span class="NUMB">22</span><span class="PUNC">,</span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>188</span> </span><span class="WHIT"> </span><span class="NAME">iconAnchor</span><span class="PUNC">:</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GPoint</span><span class="PUNC">(</span><span class="NUMB">6</span><span class="PUNC">,</span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>189</span> </span><span class="WHIT"> </span><span class="NAME">infoWindowAnchor</span><span class="PUNC">:</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GPoint</span><span class="PUNC">(</span><span class="NUMB">5</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>190</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>191</span> </span><span class="WHIT"> </span><span class="NAME">mapO.icon</span><span class="PUNC">(</span><span class="NAME">_f.iconArray</span><span class="PUNC">||</span><span class="PUNC">[</span><span class="WHIT">
<span class='line'>192</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">image</span><span class="PUNC">:</span><span class="STRN">'http://labs.google.com/ridefinder/images/mm_20_green.png'</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="COMM">//http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png//{shadow:'http://maps.google.com/mapfiles/kml/pal5/icon14s.png',image:'http://maps.google.com/mapfiles/kml/pal5/icon14.png'},//</span><span class="WHIT">
<span class='line'>193</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">image</span><span class="PUNC">:</span><span class="STRN">'http://labs.google.com/ridefinder/images/mm_20_yellow.png'</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>194</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">image</span><span class="PUNC">:</span><span class="STRN">'http://labs.google.com/ridefinder/images/mm_20_green.png'</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="COMM">//{icon:G_DEFAULT_ICON},</span><span class="WHIT">
<span class='line'>195</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">image</span><span class="PUNC">:</span><span class="STRN">'http://labs.google.com/ridefinder/images/mm_20_orange.png'</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="COMM">//'http://maps.google.com/mapfiles/arrow.png',</span><span class="WHIT">
<span class='line'>196</span> </span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT">
<span class='line'>197</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>198</span> </span><span class="WHIT"> </span><span class="NAME">mapO.runAfterAdd</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">getO.add</span><span class="PUNC">(</span><span class="NAME">o.address</span><span class="PUNC">,</span><span class="NAME">o.name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">showML.sel</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">showML</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>199</span> </span><span class="WHIT"> </span><span class="NAME">mapO.runOnClick</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">showML.sel</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">showML</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>200</span> </span><span class="WHIT"> </span><span class="NAME">mapO.runAfterRemove</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">showML.sel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NAME">o</span><span class="PUNC">)</span><span class="NAME">showML.sel</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">showML</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>201</span> </span><span class="WHIT"> </span><span class="NAME">mapO.notFound</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'&lt;em>沒找到 ['</span><span class="PUNC">+</span><span class="NAME">a</span><span class="PUNC">+</span><span class="STRN">'] '</span><span class="PUNC">+</span><span class="NAME">d.name</span><span class="PUNC">+</span><span class="STRN">'&lt;/em>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>202</span> </span><span class="WHIT"> </span><span class="COMM">// 在 unload 的時候呼叫 GUnload 以避免瀏覽器 memory leak。</span><span class="WHIT">
<span class='line'>203</span> </span><span class="WHIT"> </span><span class="NAME">addListener</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="STRN">'unload'</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">GUnload</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>204</span>
<span class='line'>205</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">htm</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">js</span><span class="PUNC">,</span><span class="NAME">ico</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>206</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'&lt;div class="cm_line" title="'</span><span class="PUNC">+</span><span class="NAME">t</span><span class="PUNC">+</span><span class="STRN">'" onclick="'</span><span class="PUNC">+</span><span class="NAME">js</span><span class="PUNC">+</span><span class="STRN">'" onmouseover="this.className=\'cm_line_mo\';" onmouseout="this.className=\'cm_line\';">&lt;img style="height:1em;width:1em;" src="'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">ico</span><span class="PUNC">||</span><span class="STRN">'http://www.google.com/mapfiles/markerTransparent.png'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'"/> '</span><span class="PUNC">+</span><span class="NAME">htm</span><span class="PUNC">+</span><span class="STRN">'&lt;/div>'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>207</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>208</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">mapO.map</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>209</span> </span><span class="WHIT"> </span><span class="COMM">// use google's message</span><span class="WHIT">
<span class='line'>210</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>211</span> </span><span class="WHIT"> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">'_map_tmp_message=p('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>212</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_map_tmp_message</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>213</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setContextMenu '+i+': '+a);</span><span class="WHIT">
<span class='line'>214</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">&&</span><span class="NAME">a.length</span><span class="PUNC">&lt;</span><span class="NUMB">8</span><span class="PUNC">?</span><span class="NAME">a</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>215</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>216</span> </span><span class="WHIT"> </span><span class="NAME">mapO.setContextMenu</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="WHIT">
<span class='line'>217</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">(</span><span class="NUMB">10985</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="STRN">'Zoom in'</span><span class="PUNC">,</span><span class="STRN">'將地圖於此放大'</span><span class="PUNC">,</span><span class="STRN">'mapO.showContextMenu(0),mapO.map.zoomIn(mapO.clickLatLng,true);'</span><span class="PUNC">,</span><span class="STRN">'http://www.google.com/mapfiles/zoom-plus.png'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>218</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">(</span><span class="NUMB">10986</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="STRN">'Zoom out'</span><span class="PUNC">,</span><span class="STRN">'將地圖於此縮小'</span><span class="PUNC">,</span><span class="STRN">'mapO.showContextMenu(0),mapO.map.zoomOut(mapO.clickLatLng,true);'</span><span class="PUNC">,</span><span class="STRN">'http://www.google.com/mapfiles/zoom-minus.png'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>219</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">(</span><span class="COMM">/*i(11047)||*/</span><span class="STRN">'Set Center'</span><span class="PUNC">,</span><span class="STRN">'將地圖於此置中'</span><span class="PUNC">,</span><span class="STRN">'mapO.showContextMenu(0),mapO.setCenter(mapO.clickLatLng);'</span><span class="PUNC">,</span><span class="STRN">'http://www.google.com/mapfiles/center.png'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>220</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'&lt;hr/>'</span><span class="WHIT">
<span class='line'>221</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">(</span><span class="STRN">'Search near'</span><span class="PUNC">,</span><span class="STRN">'搜尋附近'</span><span class="PUNC">,</span><span class="STRN">'mapO.showContextMenu(0),showNeighbor(mapO.clickLatLng);'</span><span class="PUNC">,</span><span class="STRN">'http://maps.google.com/mapfiles/kml/pal2/icon13.png'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>222</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>223</span> </span><span class="WHIT"> </span><span class="NAME">GEvent.addListener</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">,</span><span class="STRN">"click"</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>224</span> </span><span class="WHIT"> </span><span class="NAME">mapO.showContextMenu</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>225</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">GEvent.addListener</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">,</span><span class="STRN">"dragstart"</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>226</span> </span><span class="WHIT"> </span><span class="NAME">mapO.showContextMenu</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>227</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>228</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>229</span>
<span class='line'>230</span>
<span class='line'>231</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">readLoc</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>232</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">loadMapData.dataF</span><span class="PUNC">)</span><span class="NAME">catchFile</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">loadMapData.dataF</span><span class="PUNC">,</span><span class="NAME">mapO.locFP</span><span class="PUNC">=</span><span class="NAME">loadMapData.dataF</span><span class="PUNC">+</span><span class="STRN">'.adr.csv'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>233</span> </span><span class="WHIT"> </span><span class="NAME">mapO.readLoc</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>234</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>235</span>
<span class='line'>236</span>
<span class='line'>237</span> </span><span class="COMM">//loadMapData.baseD='';</span><span class="WHIT">
<span class='line'>238</span> </span><span class="COMM">// 預設可使用之模板</span><span class="WHIT">
<span class='line'>239</span> </span><span class="NAME">loadMapData.getHTM</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>240</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">d.name</span><span class="PUNC">||</span><span class="NAME">d.address</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">mapO.getPoint</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>241</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d.address</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="NAME">a.unshift</span><span class="PUNC">(</span><span class="NAME">d.address</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>242</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">?</span><span class="NAME">l.link</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>243</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">loadMapData.baseD</span><span class="PUNC">)</span><span class="NAME">loadMapData.baseD</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>244</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d.name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 不能用 this.baseD</span><span class="WHIT">
<span class='line'>245</span> </span><span class="WHIT"> </span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="STRN">'&lt;em>'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">?</span><span class="STRN">'&lt;a href="'</span><span class="PUNC">+</span><span class="NAME">loadMapData.baseD</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">+</span><span class="STRN">'" target="_blank">'</span><span class="PUNC">+</span><span class="NAME">d.name</span><span class="PUNC">+</span><span class="STRN">'&lt;/a>'</span><span class="PUNC">:</span><span class="NAME">d.name</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'&lt;/em>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>246</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d.dscr</span><span class="PUNC">)</span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="NAME">d.dscr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>247</span> </span><span class="WHIT"> </span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="STRN">'&lt;div class="adr">'</span><span class="PUNC">+</span><span class="NAME">a.join</span><span class="PUNC">(</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'&lt;/div>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>248</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">d.getLength</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="STRN">'length: '</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">d.getLength</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">1000</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toFixed</span><span class="PUNC">(</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'km'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>249</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">d.getArea</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="STRN">'面積: '</span><span class="PUNC">+</span><span class="NAME">d.getArea</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toFixed</span><span class="PUNC">(</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'m&sup2;'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>250</span> </span><span class="WHIT"> </span><span class="COMM">//if(showNeighbor.pointer&&d.getLatLng)r.push('距離 '+showNeighbor.pointer.distanceFrom(d.getLatLng()));</span><span class="WHIT">
<span class='line'>251</span> </span><span class="WHIT"> </span><span class="COMM">//r.push(,'&lt;hr class="sp"/>&lt;span onclick="">search near&lt;/span>');</span><span class="WHIT">
<span class='line'>252</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r.join</span><span class="PUNC">(</span><span class="STRN">'&lt;br/>'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/(&lt;\/(div|p)>)\s*&lt;br\/?>/g</span><span class="PUNC">,</span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>253</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>254</span> </span><span class="NAME">loadMapData.lessItems</span><span class="PUNC">=</span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>255</span> </span><span class="NAME">loadMapData.forEach</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">mapData</span><span class="PUNC">,</span><span class="NAME">index</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>256</span> </span><span class="COMM">/*
<span class='line'>257</span> loadMapData.zIndexP=function(){
<span class='line'>258</span> sl('click '+this.name);
<span class='line'>259</span> return -1;
<span class='line'>260</span> };
<span class='line'>261</span> */</span><span class="WHIT">
<span class='line'>262</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">loadMapData</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>263</span> </span><span class="WHIT"> </span><span class="COMM">/* load: 這裡假設 data 中標題可作為id獨一無二
<span class='line'>264</span> map data: [標題 敘述(description) link _data_]
<span class='line'>265</span> _data_: search string/kind additional description/data of different kind of data
<span class='line'>266</span> search string/additional description (用括弧框起來的)
<span class='line'>267</span> 'marker' lat lng
<span class='line'>268</span> 'polyline' points levels
<span class='line'>269</span> 'polygon' points levels
<span class='line'>270</span>
<span class='line'>271</span> mData[標題||address]={};
<span class='line'>272</span> */</span><span class="WHIT">
<span class='line'>273</span> </span><span class="WHIT"> </span><span class="NAME">mData</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>274</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>275</span> </span><span class="WHIT"> </span><span class="NAME">_f.run</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>276</span>
<span class='line'>277</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">_f.dataF</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'Get data file ['</span><span class="PUNC">+</span><span class="NAME">_f.dataF</span><span class="PUNC">+</span><span class="STRN">'] error: '</span><span class="PUNC">+</span><span class="NAME">e.message</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>278</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">parseCSV</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//t.replace(/\r+/g,'').replace(/\n+$/,'').replace(/^\n+/,'').split('\n');</span><span class="WHIT">
<span class='line'>279</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">showML.write</span><span class="PUNC">(</span><span class="STRN">'No list got of ['</span><span class="PUNC">+</span><span class="NAME">_f.dataF</span><span class="PUNC">+</span><span class="STRN">'].'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>280</span>
<span class='line'>281</span> </span><span class="WHIT"> </span><span class="NAME">showML.write</span><span class="PUNC">(</span><span class="STRN">'總共 '</span><span class="PUNC">+</span><span class="NAME">t.length</span><span class="PUNC">+</span><span class="STRN">' 筆資料正處理中,請稍候…'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>282</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'loadMapData: Found '</span><span class="PUNC">+</span><span class="NAME">t.length</span><span class="PUNC">+</span><span class="STRN">' lines. Parsing.. (&lt;em onclick="if(loadMapData.run)loadMapData.run=0,sl(\'User stopped.\');" style="cursor:pointer;">stop&lt;/em>)'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>283</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">t.length</span><span class="PUNC">&&</span><span class="NAME">_f.run</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>284</span> </span><span class="WHIT"> </span><span class="COMM">//sl(t[i][7]);</span><span class="WHIT">
<span class='line'>285</span> </span><span class="WHIT"> </span><span class="COMM">//if(t[i] && (m=t[i].replace(/\\n/g,'&lt;br/>').split('\t')).length>_f.lessItems)</span><span class="WHIT">
<span class='line'>286</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">></span><span class="NAME">_f.lessItems</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>287</span> </span><span class="WHIT"> </span><span class="NAME">_f.forEach</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>288</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>289</span> </span><span class="WHIT"> </span><span class="NAME">_f.run</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>290</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>291</span>
<span class='line'>292</span>
<span class='line'>293</span> </span><span class="NAME">placeMapItem.done</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>294</span> </span><span class="WHIT"> </span><span class="COMM">//sl('placing done.');</span><span class="WHIT">
<span class='line'>295</span> </span><span class="WHIT"> </span><span class="NAME">showML.refresh</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">showML</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>296</span> </span><span class="WHIT"> </span><span class="COMM">// workaround 權宜之計: iconSize 的處理還是有問題。</span><span class="WHIT">
<span class='line'>297</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'if(mapO)mapO.iconA[2].image=G_DEFAULT_ICON.image;'</span><span class="PUNC">,</span><span class="NUMB">500</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>298</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>299</span> </span><span class="NAME">placeMapItem.step</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>300</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>301</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.run</span><span class="PUNC">&&</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">_t.stepA.length</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_t.loadMax</span><span class="PUNC">||</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">_t.loadMax</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>302</span> </span><span class="WHIT"> </span><span class="NAME">mapO.add</span><span class="PUNC">(</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">_t.stepA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'placeMapItem.step('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="COMM">/*i>40?400:i+i*i/4*/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>303</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.done</span><span class="PUNC">)</span><span class="NAME">_t.done</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>304</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>305</span> </span><span class="NAME">placeMapItem.loadMax</span><span class="PUNC">=</span><span class="NUMB">80</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>306</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">placeMapItem</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>307</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>308</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_f.noPlace</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 一開始不列出點</span><span class="WHIT">
<span class='line'>309</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_f.noPlace</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">_f.noPlace</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>310</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>311</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>312</span>
<span class='line'>313</span> </span><span class="WHIT"> </span><span class="NAME">lostItem</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>314</span> </span><span class="WHIT"> </span><span class="NAME">_f.run</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>315</span> </span><span class="WHIT"> </span><span class="COMM">//showML();</span><span class="WHIT">
<span class='line'>316</span> </span><span class="WHIT"> </span><span class="NAME">showML.refresh</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>317</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_f.step</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>318</span> </span><span class="WHIT"> </span><span class="NAME">_f.stepA</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>319</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">mData</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>320</span> </span><span class="WHIT"> </span><span class="NAME">lostItem</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">_f.stepA.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//,mapO.add(mData[i]);</span><span class="WHIT">
<span class='line'>321</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'placeMapItem.step(0);'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>322</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>323</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">mData</span><span class="PUNC">)</span><span class="NAME">mapO.add</span><span class="PUNC">(</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>324</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_f.done</span><span class="PUNC">)</span><span class="NAME">_f.done</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>325</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>326</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>327</span>
<span class='line'>328</span>
<span class='line'>329</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>330</span> </span><span class="COMM">// interface</span><span class="WHIT">
<span class='line'>331</span>
<span class='line'>332</span> </span><span class="COMM">// 2008/9/6 15:7:34</span><span class="WHIT">
<span class='line'>333</span> </span><span class="COMM">//setSize.size=[880,320,240]; // width, height, menuWidth</span><span class="WHIT">
<span class='line'>334</span> </span><span class="NAME">setSize.size</span><span class="PUNC">=</span><span class="STRN">'95%,70%,25%'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// width, height, menuWidth</span><span class="WHIT">
<span class='line'>335</span> </span><span class="NAME">setSize.setContainer</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>336</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>337</span> </span><span class="WHIT"> </span><span class="NAME">this.menuC</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">this.menu</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">'markerList'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">parentNode</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// menuC: menu container</span><span class="WHIT">
<span class='line'>338</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.container</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">'map_canvas'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">parentNode</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>339</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>340</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>341</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setSize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>342</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">_f.size</span><span class="PUNC">,</span><span class="NAME">_s</span><span class="PUNC">=</span><span class="NAME">s.join</span><span class="PUNC">(</span><span class="STRN">'\0'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">'\0'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>343</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>344</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^(\d+)%$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>345</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NAME">k</span><span class="PUNC">?</span><span class="STRN">'Height'</span><span class="PUNC">:</span><span class="STRN">'Width'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>346</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">window.innerHeight</span><span class="PUNC">?</span><span class="NAME">window</span><span class="PUNC">[</span><span class="STRN">'inner'</span><span class="PUNC">+</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">document.documentElement</span><span class="PUNC">&&</span><span class="NAME">document.documentElement.clientHeight</span><span class="PUNC">?</span><span class="NAME">document.documentElement</span><span class="PUNC">[</span><span class="STRN">'client'</span><span class="PUNC">+</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">document.body</span><span class="PUNC">[</span><span class="STRN">'offset'</span><span class="PUNC">+</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">*</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">/</span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>347</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>348</span>
<span class='line'>349</span> </span><span class="COMM">/*
<span class='line'>350</span> // from getWinStatus()
<span class='line'>351</span> with(document.body.style)width=height='100%';
<span class='line'>352</span> sl('setSize: window.inner: '+window.innerWidth+','+window.innerHeight);
<span class='line'>353</span> sl('setSize: window.page: '+window.pageXOffset+','+window.pageYOffset);
<span class='line'>354</span> sl('setSize: screen: '+screen.width+','+screen.height);
<span class='line'>355</span> sl('setSize: document.documentElement.client: '+document.documentElement.clientWidth+','+document.documentElement.clientHeight);
<span class='line'>356</span> sl('setSize: document.body.scroll: '+document.body.scrollWidth+','+document.body.scrollHeight);
<span class='line'>357</span> sl('setSize: document.body.offset: '+document.body.offsetWidth+','+document.body.offsetHeight);
<span class='line'>358</span> sl('setSize: document.body.client: '+document.body.clientWidth+','+document.body.clientHeight);
<span class='line'>359</span> */</span><span class="WHIT">
<span class='line'>360</span>
<span class='line'>361</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>362</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>363</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">(</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>364</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setSize: '+_s);</span><span class="WHIT">
<span class='line'>365</span>
<span class='line'>366</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_f.container</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>367</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_f.setContainer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>368</span>
<span class='line'>369</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">a.style</span><span class="PUNC">)</span><span class="NAME">width</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">height</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>370</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">_f.menuC.style</span><span class="PUNC">)</span><span class="NAME">width</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">height</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>371</span>
<span class='line'>372</span> </span><span class="WHIT"> </span><span class="NAME">_f.menu.style.height</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">_f.menu.offsetTop</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>373</span>
<span class='line'>374</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setSize: '+a.offsetWidth+'-'+_f.menuC.offsetWidth+'='+(a.offsetWidth-_f.menuC.offsetWidth));</span><span class="WHIT">
<span class='line'>375</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setSize: '+_s[0]+'-'+_s[2]+'='+(_s[0]-_s[2]));</span><span class="WHIT">
<span class='line'>376</span> </span><span class="WHIT"> </span><span class="NAME">initMap.flag.size</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="WHIT">
<span class='line'>377</span> </span><span class="WHIT"> </span><span class="NAME">a.offsetWidth</span><span class="PUNC">-</span><span class="NAME">_f.menuC.offsetWidth</span><span class="PUNC">-</span><span class="PUNC">(</span><span class="NAME">navigator.userAgent.indexOf</span><span class="PUNC">(</span><span class="STRN">'MSIE'</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">?</span><span class="NUMB">13</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// 13: 和 scrollbar 有關嗎??</span><span class="WHIT">
<span class='line'>378</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">navigator.userAgent.indexOf</span><span class="PUNC">(</span><span class="STRN">'MSIE'</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">?</span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// _s[1] 不能改成 a.offsetHeight</span><span class="WHIT">
<span class='line'>379</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>380</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>381</span>
<span class='line'>382</span>
<span class='line'>383</span>
<span class='line'>384</span> </span><span class="NAME">showML.refresh</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>385</span> </span><span class="NAME">showML.closeMark</span><span class="PUNC">=</span><span class="STRN">'×'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>386</span> </span><span class="NAME">showML.indexA</span><span class="PUNC">=</span><span class="STRN">'iA'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>387</span> </span><span class="NAME">showML.selClass</span><span class="PUNC">=</span><span class="STRN">'sel'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>388</span> </span><span class="NAME">showML.specialKind</span><span class="PUNC">=</span><span class="STRN">'sp'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>389</span> </span><span class="NAME">showML.isSelR</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'(^|\\s+)'</span><span class="PUNC">+</span><span class="NAME">showML.selClass</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>390</span> </span><span class="COMM">//showML.selO=null;</span><span class="WHIT">
<span class='line'>391</span> </span><span class="NAME">showML.sel</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">removed</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>392</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>393</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>394</span> </span><span class="WHIT"> </span><span class="COMM">// GMarker.setImage(src)</span><span class="WHIT">
<span class='line'>395</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">removed</span><span class="PUNC">&&</span><span class="NAME">_t.selO</span><span class="PUNC">&&</span><span class="NAME">_t.selO.setImage</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>396</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">_t.selO.setImage</span><span class="PUNC">(</span><span class="NAME">mapO.icon</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">image</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 用 try 是因為有時被刪了可是卻還是在(動作太快?),這時要 setImage 會出錯。</span><span class="WHIT">
<span class='line'>397</span> </span><span class="WHIT"> </span><span class="NAME">_t.selO</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>398</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">&&</span><span class="NAME">o.setImage</span><span class="PUNC">)</span><span class="NAME">o.setImage</span><span class="PUNC">(</span><span class="NAME">mapO.icon</span><span class="PUNC">(</span><span class="NAME">showSP.selectedI</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">image</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>399</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>400</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t.selO</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>401</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>402</span> </span><span class="NAME">showML.getName</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>403</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">=</span><span class="NAME">o.parentNode.attributes.getNamedItem</span><span class="PUNC">(</span><span class="NAME">this.indexA</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>404</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">=</span><span class="NAME">name.nodeValue</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">=</span><span class="NAME">name.match</span><span class="PUNC">(</span><span class="REGX">/^([a-z]+),(.+)$/i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>405</span> </span><span class="WHIT"> </span><span class="COMM">//sl('showML.getName: ['+type[1]+'] '+type[2]+'('+getO.alias(type[2])+','+mapO.getO(type[1],getO.alias(type[2]))+')');</span><span class="WHIT">
<span class='line'>406</span> </span><span class="WHIT"> </span><span class="COMM">//name=,type=type[1];</span><span class="WHIT">
<span class='line'>407</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">getO.alias</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="COMM">//[name,type];</span><span class="WHIT">
<span class='line'>408</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>409</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>410</span> </span><span class="NAME">showML.write</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>411</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">'markerList'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">innerHTML</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>412</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>413</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">showML</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>414</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">mapO</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 尚未 initial?</span><span class="WHIT">
<span class='line'>415</span>
<span class='line'>416</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>417</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>418</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>419</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">=</span><span class="NAME">_f.getName</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>420</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">=</span><span class="NAME">type</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">=</span><span class="NAME">type</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>421</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o.className</span><span class="PUNC">==</span><span class="STRN">'closeMark'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>422</span> </span><span class="WHIT"> </span><span class="NAME">mapO.remove</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>423</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>424</span> </span><span class="WHIT"> </span><span class="NAME">showML.sel</span><span class="PUNC">(</span><span class="NAME">mapO.getO</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//.setImage(mapO.icon(2).image);</span><span class="WHIT">
<span class='line'>425</span> </span><span class="WHIT"> </span><span class="NAME">mapO.show</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>426</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">o.parentNode</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>427</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">LI</span><span class="PUNC">=</span><span class="NAME">o.parentNode.parentNode.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'li'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">LI.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>428</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_f.isSelR.test</span><span class="PUNC">(</span><span class="NAME">LI</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">className</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">LI</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">className</span><span class="PUNC">=</span><span class="NAME">LI</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">className.replace</span><span class="PUNC">(</span><span class="NAME">_f.isSelR</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>429</span> </span><span class="WHIT"> </span><span class="NAME">o.className</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">' '</span><span class="PUNC">+</span><span class="NAME">_f.selClass</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>430</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>431</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>432</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>433</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>434</span>
<span class='line'>435</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f.refresh</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>436</span> </span><span class="WHIT"> </span><span class="COMM">//alert(mapO.getOArray('type').join('\n'));</span><span class="WHIT">
<span class='line'>437</span>
<span class='line'>438</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="STRN">'&lt;ol>'</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">j</span><span class="PUNC">,</span><span class="NAME">id</span><span class="PUNC">,</span><span class="NAME">OK</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>439</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">mapO.supportKind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>440</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">mapO.getO</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>441</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>442</span> </span><span class="WHIT"> </span><span class="COMM">//sl(a[i].name+','+a[i].address);</span><span class="WHIT">
<span class='line'>443</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">lostItem</span><span class="PUNC">)</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">lostItem</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>444</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="STRN">'address'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">address</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">lostItem</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">lostItem</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">address</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>445</span>
<span class='line'>446</span> </span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">getLatLng</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">?</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>447</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">id</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">OK</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>448</span> </span><span class="WHIT"> </span><span class="NAME">OK</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>449</span> </span><span class="WHIT"> </span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="STRN">'&lt;li '</span><span class="PUNC">+</span><span class="NAME">_f.indexA</span><span class="PUNC">+</span><span class="STRN">'="'</span><span class="PUNC">+</span><span class="NAME">j</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">'" class="'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">==</span><span class="STRN">'marker'</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="NAME">_f.specialKind</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">' '</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">_f.sel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">?</span><span class="NAME">_f.selClass</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'"'</span><span class="WHIT">
<span class='line'>450</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'>&lt;a href="#" title="'</span><span class="PUNC">+</span><span class="NAME">UnicodeToHTML</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="WHIT">
<span class='line'>451</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">||</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">dscr</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="NAME">id</span><span class="PUNC">+</span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>452</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">dscr</span><span class="PUNC">||</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>453</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">showNeighbor.pointer</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">getLatLng</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">?</span><span class="STRN">'\n距離定點 '</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">distanceFrom</span><span class="PUNC">(</span><span class="NAME">showNeighbor.pointer.getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">1000</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toFixed</span><span class="PUNC">(</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">' km'</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>454</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;br\/?>/gi</span><span class="PUNC">,</span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\n{2,}/g</span><span class="PUNC">,</span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'" onclick="return showML(this);" onmouseover="showSP(this,1);" onmouseout="showSP(this);">'</span><span class="WHIT">
<span class='line'>455</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="PUNC">||</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;[^>]+>/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>456</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'&lt;/a> [&lt;a href="#" class="closeMark" onclick="return showML(this);" title="關閉">'</span><span class="PUNC">+</span><span class="NAME">_f.closeMark</span><span class="PUNC">+</span><span class="STRN">'&lt;/a>]&lt;/li>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">// title="remove marker"</span><span class="WHIT">
<span class='line'>457</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>458</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>459</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">lostItem</span><span class="PUNC">)</span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="STRN">'&lt;li class="lost">&lt;a href="#" onclick="mData['</span><span class="PUNC">+</span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="STRN">"'"</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'].show=1;mapO.add(mData['</span><span class="PUNC">+</span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="STRN">"'"</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">']);return false;" title="'</span><span class="PUNC">+</span><span class="NAME">UnicodeToHTML</span><span class="PUNC">(</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="PUNC">||</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">type</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'">'</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">'&lt;/a>&lt;/li>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>460</span> </span><span class="WHIT"> </span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="STRN">'&lt;/ol>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>461</span> </span><span class="WHIT"> </span><span class="COMM">//sl(UnicodeToHTML(t.join('')),1);</span><span class="WHIT">
<span class='line'>462</span> </span><span class="WHIT"> </span><span class="NAME">_f.write</span><span class="PUNC">(</span><span class="NAME">t.join</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>463</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">dealLink</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'dealLink(0,1);'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>464</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>465</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>466</span>
<span class='line'>467</span>
<span class='line'>468</span> </span><span class="COMM">// show spot</span><span class="WHIT">
<span class='line'>469</span> </span><span class="NAME">showSP.defaultI</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// default icon index</span><span class="WHIT">
<span class='line'>470</span> </span><span class="NAME">showSP.selectedI</span><span class="PUNC">=</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// selected icon index</span><span class="WHIT">
<span class='line'>471</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">showSP</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>472</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>473</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>474</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>475</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">=</span><span class="NAME">showML.getName</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>476</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">=</span><span class="NAME">type</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">=</span><span class="NAME">type</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>477</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">mapO.getO</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>478</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">&&</span><span class="NAME">o.setImage</span><span class="PUNC">&&</span><span class="NAME">o</span><span class="PUNC">!=</span><span class="NAME">showML.sel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>479</span> </span><span class="WHIT"> </span><span class="COMM">//sl('showSP: set icon of ['+o.name+'] to '+i),</span><span class="WHIT">
<span class='line'>480</span> </span><span class="WHIT"> </span><span class="NAME">o.setImage</span><span class="PUNC">(</span><span class="NAME">mapO.icon</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">image</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>481</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>482</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>483</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>484</span>
<span class='line'>485</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>486</span>
<span class='line'>487</span> </span><span class="WHIT"> </span><span class="COMM">// 應用</span><span class="WHIT">
<span class='line'>488</span>
<span class='line'>489</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">removeAll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>490</span> </span><span class="WHIT"> </span><span class="NAME">showML.refresh</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">lostItem</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>491</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">mapO</span><span class="PUNC">)</span><span class="NAME">mapO.removeAll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 尚未 initial?</span><span class="WHIT">
<span class='line'>492</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">showML</span><span class="PUNC">)</span><span class="NAME">showML.sel</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">showML.refresh</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">showML</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>493</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>494</span>
<span class='line'>495</span>
<span class='line'>496</span> </span><span class="COMM">// 不能造成 type 改變!</span><span class="WHIT">
<span class='line'>497</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">normalize_address</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>498</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments.callee</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>499</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f.dc</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>500</span> </span><span class="WHIT"> </span><span class="NAME">_f.nr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'g'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>501</span> </span><span class="WHIT"> </span><span class="NAME">_f.dc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>502</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">a.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>503</span> </span><span class="WHIT"> </span><span class="NAME">_f.dc</span><span class="PUNC">[</span><span class="NAME">a.charAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>504</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>505</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t.replace</span><span class="PUNC">(</span><span class="REGX">/[\s ]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="NAME">_f.nr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>506</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_f.dc</span><span class="PUNC">[</span><span class="NAME">$0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>507</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>508</span> </span><span class="WHIT"> </span><span class="COMM">//.replace(/號([^樓]+樓|之.{1,2})$/,'號');</span><span class="WHIT">
<span class='line'>509</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>510</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>511</span>
<span class='line'>512</span> </span><span class="COMM">/*
<span class='line'>513</span> http://www.post.gov.tw/post/internet/f_searchzone/sz_a_b_ta.jsp#a
<span class='line'>514</span> 縣市
<span class='line'>515</span> 鄉鎮市區 【市】為縣轄市
<span class='line'>516</span> 村里 直轄市:台北市、高雄市及省轄市:基隆市、新竹市、台中市、嘉義市、台南市以外地區由於路名結構變化較大,有些地區沒有路、街,僅有「村」、「里」名稱
<span class='line'>517</span>
<span class='line'>518</span> 路街 路名中不可使用(全、半形)阿拉伯數字,必須一律使用中文數字,如中正二路等,惟門牌號不必輸入。 新村、山莊、新城、工業區等與街、路同級之名稱
<span class='line'>519</span>
<span class='line'>520</span> 巷 文字巷
<span class='line'>521</span>
<span class='line'>522</span>
<span class='line'>523</span> \d(之\d)樓(之\d)
<span class='line'>524</span>
<span class='line'>525</span> 縣市鄉鎮區村里鄰路街段巷弄號樓
<span class='line'>526</span>
<span class='line'>527</span> TODO:
<span class='line'>528</span> 806台灣高雄市前鎮區光華二路413號
<span class='line'>529</span>
<span class='line'>530</span> */</span><span class="WHIT">
<span class='line'>531</span> </span><span class="NAME">CeL.net.map</span><span class="WHIT">
<span class='line'>532</span> </span><span class="PUNC">.</span><span class="WHIT">
<span class='line'>533</span> </span><span class="COMM">/**
<span class='line'>534</span> * 解析地址
<span class='line'>535</span> * @param {String} address 地址
<span class='line'>536</span> * @returns
<span class='line'>537</span> * @memberOf CeL.net.map
<span class='line'>538</span> */</span><span class="WHIT">
<span class='line'>539</span> </span><span class="NAME">parse_address</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">address</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>540</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'縣市鄉鎮區村里鄰路街段巷弄號樓'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>541</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'[^'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']+(['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'])'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'g'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>542</span>
<span class='line'>543</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">address.replace</span><span class="PUNC">(</span><span class="REGX">/[ \s]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/號([^樓F]{1,6})F$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'號$1樓'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>544</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/^(\d{3,5})?[台臺]灣/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/^\d+/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>545</span> </span><span class="WHIT"> </span><span class="NAME">r.zip</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>546</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>547</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>548</span> </span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>549</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/縣市/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">r.zip</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>550</span> </span><span class="WHIT"> </span><span class="NAME">v.replace</span><span class="PUNC">(</span><span class="REGX">/^\d{3}\d{2}?}/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>551</span> </span><span class="WHIT"> </span><span class="NAME">r.zip</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>552</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>553</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>554</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>555</span> </span><span class="WHIT"> </span><span class="COMM">//sl(v);</span><span class="WHIT">
<span class='line'>556</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>557</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>558</span> </span><span class="WHIT"> </span><span class="COMM">// sl('['+address+'] --- ['+_+']');</span><span class="WHIT">
<span class='line'>559</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">address</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>560</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>561</span>
<span class='line'>562</span>
<span class='line'>563</span> </span><span class="COMM">// 地址轉 index</span><span class="WHIT">
<span class='line'>564</span> </span><span class="NAME">getO.n</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// name(address) to mapO.getO's name</span><span class="WHIT">
<span class='line'>565</span> </span><span class="NAME">getO.add</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">alias</span><span class="PUNC">,</span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>566</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">alias</span><span class="PUNC">&&</span><span class="NAME">name</span><span class="PUNC">&&</span><span class="NAME">alias</span><span class="PUNC">!=</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>567</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">&&</span><span class="NAME">mapO.getO</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="NAME">alias</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">mapO.getO</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>568</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">name</span><span class="PUNC">;</span><span class="NAME">name</span><span class="PUNC">=</span><span class="NAME">alias</span><span class="PUNC">,</span><span class="NAME">alias</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>569</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>570</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getO.add: ['+alias+'] set to ['+name+']'),</span><span class="WHIT">
<span class='line'>571</span> </span><span class="WHIT"> </span><span class="NAME">this.n</span><span class="PUNC">[</span><span class="NAME">alias</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">name</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>572</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>573</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>574</span> </span><span class="NAME">getO.alias</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.n</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">name</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>575</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">getO</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>576</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">mapO.getO</span><span class="PUNC">(</span><span class="NAME">arguments.callee.n</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>577</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>578</span>
<span class='line'>579</span>
<span class='line'>580</span>
<span class='line'>581</span>
<span class='line'>582</span> </span><span class="COMM">/* search address
<span class='line'>583</span> sA(index of mData)
<span class='line'>584</span> sA({type(where):'',name:'',description:''})
<span class='line'>585</span> sA(type(where),name,description)
<span class='line'>586</span> */</span><span class="WHIT">
<span class='line'>587</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">sA</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>588</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">mData</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 尚未 initial?</span><span class="WHIT">
<span class='line'>589</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">mData</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">arguments.length</span><span class="PUNC">></span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>590</span> </span><span class="WHIT"> </span><span class="COMM">//sl('sA: search '+i),</span><span class="WHIT">
<span class='line'>591</span> </span><span class="WHIT"> </span><span class="NAME">mapO.searchPoint.apply</span><span class="PUNC">(</span><span class="NAME">mapO</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>592</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
<span class='line'>593</span> </span><span class="WHIT"> </span><span class="COMM">//sl('sA: call mData['+i+']('+mData[i].type+')'),</span><span class="WHIT">
<span class='line'>594</span> </span><span class="WHIT"> </span><span class="NAME">mapO.searchPoint</span><span class="PUNC">(</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>595</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>596</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>597</span>
<span class='line'>598</span> </span><span class="COMM">// 先找尋現有資料</span><span class="WHIT">
<span class='line'>599</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">sA2</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">,</span><span class="NAME">noFit</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>600</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>601</span>
<span class='line'>602</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">noFit</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>603</span> </span><span class="WHIT"> </span><span class="NAME">showFit</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="WHIT">
<span class='line'>604</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">o.name</span><span class="PUNC">+</span><span class="NAME">o.description</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>605</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_f</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>606</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>607</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>608</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>609</span>
<span class='line'>610</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">adr_to_mData</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">||</span><span class="NAME">mapO.LatLngR.test</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">sA</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>611</span>
<span class='line'>612</span> </span><span class="WHIT"> </span><span class="COMM">//return sA(adr_to_mData[adr]||adr);</span><span class="WHIT">
<span class='line'>613</span>
<span class='line'>614</span>
<span class='line'>615</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f.c</span><span class="PUNC">)</span><span class="NAME">_f.c</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">'guess'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>616</span>
<span class='line'>617</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">adr_to_mData</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">adr.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">adr_to_mData</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>618</span> </span><span class="WHIT"> </span><span class="COMM">//sl('sA2: ['+adr+']→['+adr.toLowerCase()+']'),</span><span class="WHIT">
<span class='line'>619</span> </span><span class="WHIT"> </span><span class="NAME">adr</span><span class="PUNC">=</span><span class="NAME">adr.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>620</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">adr_to_mData</span><span class="PUNC">[</span><span class="NAME">adr</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">mData</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>621</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">adr_to_mData</span><span class="PUNC">[</span><span class="NAME">adr</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>622</span> </span><span class="WHIT"> </span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">show</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 置中</span><span class="WHIT">
<span class='line'>623</span> </span><span class="WHIT"> </span><span class="NAME">sA</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>624</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">showML.selO</span><span class="PUNC">)</span><span class="NAME">mapO.showWindow</span><span class="PUNC">(</span><span class="NAME">showML.selO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>625</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f.c</span><span class="PUNC">)</span><span class="NAME">sA</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>626</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">mapO.getLocations</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>627</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cM</span><span class="PUNC">=</span><span class="STRN">'&lt;div style="float:right;cursor:pointer;" title="close" onclick="sA2.c.style.display=\'none\';">[×]&lt;/div>'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>628</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">gLocal</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">gLocal.searcher.setCenterPoint</span><span class="PUNC">(</span><span class="NAME">showNeighbor.pointer.getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">mapO.setCenter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="STRN">'台灣'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">gLocal.s</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>629</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">r.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_f.c.innerHTML</span><span class="PUNC">=</span><span class="NAME">cM</span><span class="PUNC">+</span><span class="STRN">'使用 GClientGeocoder.getLocations 沒找到 [&lt;span style="color:#e23;">'</span><span class="PUNC">+</span><span class="NAME">adr</span><span class="PUNC">+</span><span class="STRN">'&lt;/span>]&lt;br/>'</span><span class="PUNC">+</span><span class="NAME">mapO.GeoStatus</span><span class="PUNC">(</span><span class="NAME">mapO.getLocations.errno</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_f.c.style.display</span><span class="PUNC">=</span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>630</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r.length</span><span class="PUNC">==</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="NAME">adr</span><span class="PUNC">==</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">sA</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">showML.selO</span><span class="PUNC">)</span><span class="NAME">mapO.showWindow</span><span class="PUNC">(</span><span class="NAME">showML.selO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>631</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">cM</span><span class="PUNC">+</span><span class="STRN">'對於 [&lt;span style="color:#e23;">'</span><span class="PUNC">+</span><span class="NAME">adr</span><span class="PUNC">+</span><span class="STRN">'&lt;/span>],您是不是指:&lt;ol>'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>632</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">r.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>633</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>634</span> </span><span class="WHIT"> </span><span class="COMM">//sl('sA2: '+r[i]),</span><span class="WHIT">
<span class='line'>635</span> </span><span class="WHIT"> </span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="STRN">'&lt;li>&lt;span title="'</span><span class="PUNC">+</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'">〒&lt;/span> &lt;span class="point" onclick="sA(this.title);if(showML.selO)mapO.showWindow(showML.selO);return false;" title="'</span><span class="PUNC">+</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'">'</span><span class="PUNC">+</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'&lt;/span>&lt;/li>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>636</span> </span><span class="WHIT"> </span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="STRN">'&lt;/ol>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>637</span> </span><span class="WHIT"> </span><span class="NAME">_f.c.innerHTML</span><span class="PUNC">=</span><span class="NAME">t.join</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>638</span> </span><span class="WHIT"> </span><span class="NAME">_f.c.style.display</span><span class="PUNC">=</span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>639</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//sA(adr);</span><span class="WHIT">
<span class='line'>640</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>641</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>642</span>
<span class='line'>643</span>
<span class='line'>644</span>
<span class='line'>645</span> </span><span class="COMM">/*
<span class='line'>646</span> 從 mData show 符合條件的
<span class='line'>647</span> */</span><span class="WHIT">
<span class='line'>648</span> </span><span class="NAME">showFit.showZoom</span><span class="PUNC">=</span><span class="NUMB">40</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 這以下就 zoom</span><span class="WHIT">
<span class='line'>649</span> </span><span class="NAME">showFit.limit</span><span class="PUNC">=</span><span class="NUMB">80</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 最多取點數</span><span class="WHIT">
<span class='line'>650</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">showFit</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">,</span><span class="NAME">func</span><span class="PUNC">,</span><span class="NAME">notFound</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>651</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">func</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>652</span> </span><span class="WHIT"> </span><span class="NAME">removeAll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>653</span> </span><span class="WHIT"> </span><span class="NAME">showML.write</span><span class="PUNC">(</span><span class="STRN">'頁面資料讀取中,請稍候…'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>654</span>
<span class='line'>655</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>656</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">mData</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>657</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">mData</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">mapO.searchPoint.call</span><span class="PUNC">(</span><span class="NAME">mapO</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 確定有找到才 c++</span><span class="WHIT">
<span class='line'>658</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">p.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_f.limit</span><span class="PUNC">&&</span><span class="NAME">p.length</span><span class="PUNC">></span><span class="NAME">_f.limit</span><span class="PUNC">)</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>659</span>
<span class='line'>660</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">p.length</span><span class="PUNC">&lt;</span><span class="NAME">_f.showZoom</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>661</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">p.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>662</span> </span><span class="WHIT"> </span><span class="COMM">// zoom</span><span class="WHIT">
<span class='line'>663</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLngBounds</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>664</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">p.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>665</span> </span><span class="WHIT"> </span><span class="NAME">b.extend</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>666</span> </span><span class="WHIT"> </span><span class="NAME">mapO.setCenter</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">p</span><span class="PUNC">:</span><span class="NAME">b.getCenter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">:</span><span class="STRN">'pan'</span><span class="PUNC">,</span><span class="NAME">z</span><span class="PUNC">:</span><span class="NAME">mapO.map.getBoundsZoomLevel</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>667</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">notFound</span><span class="PUNC">)</span><span class="NAME">notFound</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>668</span>
<span class='line'>669</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>670</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>671</span>
<span class='line'>672</span>
<span class='line'>673</span>
<span class='line'>674</span> </span><span class="COMM">/* 只顯示附近的spot
<span class='line'>675</span> showNeighbor('高雄市苓雅區');
<span class='line'>676</span>
<span class='line'>677</span> bug:
<span class='line'>678</span>
<span class='line'>679</span> TODO:
<span class='line'>680</span> setZoom: getBoundsZoomLevel
<span class='line'>681</span> addSelf: 加入此點,使之受到管控。預設 false
<span class='line'>682</span> 不在管控內
<span class='line'>683</span> */</span><span class="WHIT">
<span class='line'>684</span> </span><span class="NAME">showNeighbor.pointer</span><span class="PUNC">=</span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// default GMarker</span><span class="WHIT">
<span class='line'>685</span> </span><span class="NAME">showNeighbor.addPointer</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>686</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_m</span><span class="PUNC">=</span><span class="NAME">mapO.map</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">mapO.addMarker</span><span class="PUNC">(</span><span class="WHIT">
<span class='line'>687</span> </span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NUMB">22.62</span><span class="PUNC">,</span><span class="NUMB">120.33</span><span class="PUNC">)</span><span class="COMM">//dLoc.tw</span><span class="WHIT">
<span class='line'>688</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="PUNC">{</span><span class="NAME">draggable</span><span class="PUNC">:</span><span class="KEYW">true</span><span class="PUNC">,</span><span class="NAME">title</span><span class="PUNC">:</span><span class="STRN">'請拖曳我,以找出鄰近的點。'</span><span class="PUNC">,</span><span class="NAME">icon</span><span class="PUNC">:</span><span class="NAME">mapO.icon</span><span class="PUNC">(</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>689</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>690</span> </span><span class="WHIT"> </span><span class="NAME">GEvent.addListener</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">,</span><span class="STRN">"dragend"</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>691</span> </span><span class="WHIT"> </span><span class="NAME">showNeighbor</span><span class="PUNC">(</span><span class="NAME">m.getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>692</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>693</span>
<span class='line'>694</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.l</span><span class="PUNC">)</span><span class="NAME">GEvent.removeListener</span><span class="PUNC">(</span><span class="NAME">this.l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>695</span> </span><span class="WHIT"> </span><span class="NAME">this.l</span><span class="PUNC">=</span><span class="NAME">GEvent.addListener</span><span class="PUNC">(</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="STRN">"click"</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">overlay</span><span class="PUNC">,</span><span class="NAME">point</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>696</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">,</span><span class="NUMB">10</span><span class="PUNC">,</span><span class="NUMB">15</span><span class="PUNC">,</span><span class="NUMB">20</span><span class="PUNC">,</span><span class="NUMB">30</span><span class="PUNC">,</span><span class="NUMB">50</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">=</span><span class="STRN">'&lt;br/>&lt;a href="#" onclick="return showNeighbor.byD();" title="search near">搜尋附近&lt;/a>'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>697</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">p.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">' &lt;a href="#" onclick="return showNeighbor.byD('</span><span class="PUNC">+</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">');">'</span><span class="PUNC">+</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'&lt;/a>'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>698</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">' km'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>699</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">overlay</span><span class="PUNC">==</span><span class="NAME">m</span><span class="PUNC">)</span><span class="NAME">m.openInfoWindowHtml</span><span class="PUNC">(</span><span class="STRN">'經緯度: '</span><span class="PUNC">+</span><span class="NAME">m.getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>700</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">overlay</span><span class="PUNC">&&</span><span class="NAME">point</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>701</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">m.getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">m.setLatLng</span><span class="PUNC">(</span><span class="NAME">point</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>702</span> </span><span class="WHIT"> </span><span class="NAME">m.openInfoWindowHtml</span><span class="PUNC">(</span><span class="NAME">point</span><span class="PUNC">+</span><span class="STRN">'&lt;br/>from: '</span><span class="PUNC">+</span><span class="NAME">p</span><span class="PUNC">+</span><span class="STRN">',&lt;br/>distance: '</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">p.distanceFrom</span><span class="PUNC">(</span><span class="NAME">point</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">1000</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toFixed</span><span class="PUNC">(</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'km'</span><span class="PUNC">+</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>703</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>704</span>
<span class='line'>705</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.pointer</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>706</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>707</span> </span><span class="NAME">showNeighbor.arg</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 傳給 .getNeighbor() 的參數</span><span class="WHIT">
<span class='line'>708</span> </span><span class="WHIT"> </span><span class="COMM">//f:'n[i]=n[i][1][2];', // 不能改變結構!因為需要 getBoundsZoomLevel</span><span class="WHIT">
<span class='line'>709</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">:</span><span class="NUMB">30</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>710</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">:</span><span class="NUMB">9</span><span class="WHIT">
<span class='line'>711</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>712</span> </span><span class="NAME">showNeighbor.forEach</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>713</span> </span><span class="WHIT"> </span><span class="COMM">//sl('showNeighbor.forEach: ['+(typeof a[1][2])+'] '+a[1][2]);</span><span class="WHIT">
<span class='line'>714</span> </span><span class="WHIT"> </span><span class="NAME">sA</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>715</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>716</span> </span><span class="NAME">showNeighbor.byD</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>717</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>718</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="NAME">_t.arg.d</span><span class="PUNC">=</span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>719</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.pointer</span><span class="PUNC">)</span><span class="NAME">_t</span><span class="PUNC">(</span><span class="NAME">_t.pointer.getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>720</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>721</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>722</span> </span><span class="NAME">showNeighbor.notFound</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">address</span><span class="PUNC">,</span><span class="NAME">address_not_found</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>723</span> </span><span class="WHIT"> </span><span class="NAME">showML.write</span><span class="PUNC">(</span><span class="STRN">'抱歉,找不到 &lt;em>'</span><span class="PUNC">+</span><span class="NAME">address</span><span class="PUNC">+</span><span class="STRN">'&lt;/em>'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">address_not_found</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="STRN">' 附近的點'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'。'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>724</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>725</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">showNeighbor</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="COMM">//(location | [location, address], addSelf)</span><span class="WHIT">
<span class='line'>726</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">l</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>727</span> </span><span class="WHIT"> </span><span class="NAME">showML.write</span><span class="PUNC">(</span><span class="STRN">'頁面資料讀取中,請稍候…'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>728</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">adr</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>729</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="NAME">adr</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>730</span> </span><span class="WHIT"> </span><span class="COMM">//sl('showNeighbor: ['+l+','+adr+'] '+(l instanceof GLatLng)+', '+mapO.getLatLng(l+''));</span><span class="WHIT">
<span class='line'>731</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>732</span> </span><span class="WHIT"> </span><span class="COMM">// 無此資料。嘗試取得 loc..</span><span class="WHIT">
<span class='line'>733</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">mapO.getLatLng</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">,</span><span class="PUNC">[</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_f</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">adr</span><span class="PUNC">||</span><span class="NAME">l</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">adr</span><span class="PUNC">||</span><span class="NAME">l</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">_f.notFound</span><span class="PUNC">&&</span><span class="NAME">_f.notFound</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">||</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>734</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">mapO.getNeighbor</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">_f.arg</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>735</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>736</span> </span><span class="WHIT"> </span><span class="NAME">removeAll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>737</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bounds</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLngBounds</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>738</span> </span><span class="WHIT"> </span><span class="NAME">bounds.extend</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>739</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">o.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>740</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>741</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Add to bound: '+o[i][1][0]+','+o[i][1][1]),</span><span class="WHIT">
<span class='line'>742</span> </span><span class="WHIT"> </span><span class="NAME">bounds.extend</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>743</span> </span><span class="WHIT"> </span><span class="COMM">//sl('add ['+o[i][1][2]+'] by '+(_f.forEach+'').slice(0,20)+'..');</span><span class="WHIT">
<span class='line'>744</span> </span><span class="WHIT"> </span><span class="NAME">_f.forEach</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>745</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>746</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">mapO.searchPoint.show</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 若設了 searchPoint.show還是會被其他的奪去…</span><span class="WHIT">
<span class='line'>747</span> </span><span class="WHIT"> </span><span class="NAME">mapO.setCenter</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">p</span><span class="PUNC">:</span><span class="NAME">bounds.getCenter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">:</span><span class="STRN">'pan'</span><span class="PUNC">,</span><span class="NAME">z</span><span class="PUNC">:</span><span class="NAME">mapO.map.getBoundsZoomLevel</span><span class="PUNC">(</span><span class="NAME">bounds</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>748</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_f.notFound</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>749</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_f.pointer</span><span class="PUNC">)</span><span class="NAME">_f.pointer.setLatLng</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_f.pointer.openInfoWindowHtml</span><span class="PUNC">(</span><span class="STRN">'搜尋 '</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">?</span><span class="STRN">'&lt;em title="'</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">+</span><span class="STRN">'">'</span><span class="PUNC">+</span><span class="NAME">adr</span><span class="PUNC">+</span><span class="STRN">'&lt;/em> '</span><span class="PUNC">:</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">' 四周 '</span><span class="PUNC">+</span><span class="NAME">_f.arg.d</span><span class="PUNC">+</span><span class="STRN">' km&lt;br/>找到 '</span><span class="PUNC">+</span><span class="NAME">o.length</span><span class="PUNC">+</span><span class="STRN">'/(最多 '</span><span class="PUNC">+</span><span class="NAME">_f.arg.c</span><span class="PUNC">+</span><span class="STRN">') 個點。'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>750</span> </span><span class="WHIT"> </span><span class="COMM">//sl('showNeighbor: search around '+l+' (四周 '+_f.arg.d+' km) get '+o.length+'/(max '+_f.arg.c+') results.');</span><span class="WHIT">
<span class='line'>751</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>752</span>
<span class='line'>753</span>
<span class='line'>754</span>
<span class='line'>755</span>
<span class='line'>756</span>
<span class='line'>757</span>
<span class='line'>758</span>
<span class='line'>759</span>
<span class='line'>760</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>761</span>
<span class='line'>762</span>
<span class='line'>763</span>
<span class='line'>764</span>
<span class='line'>765</span>
<span class='line'>766</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>767</span> </span><span class="COMM">/*
<span class='line'>768</span> ** use Yahoo! Map to get position of a address
<span class='line'>769</span>
<span class='line'>770</span> _=this
<span class='line'>771</span>
<span class='line'>772</span> TODO:
<span class='line'>773</span>
<span class='line'>774</span>
<span class='line'>775</span> HISTORY:
<span class='line'>776</span> 2008/7/31 19:56:29 create
<span class='line'>777</span>
<span class='line'>778</span>
<span class='line'>779</span> http://tw.developer.yahoo.com/maps/
<span class='line'>780</span> http://developer.yahoo.com/maps/ajax/V3.8/index.html
<span class='line'>781</span> */</span><span class="WHIT">
<span class='line'>782</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>783</span> </span><span class="NAME">getLatLon</span><span class="PUNC">=</span><span class="WHIT">
<span class='line'>784</span>
<span class='line'>785</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>786</span>
<span class='line'>787</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>788</span>
<span class='line'>789</span> </span><span class="COMM">// class private -----------------------------------</span><span class="WHIT">
<span class='line'>790</span>
<span class='line'>791</span> </span><span class="COMM">// class name</span><span class="WHIT">
<span class='line'>792</span> </span><span class="NAME">n</span><span class="PUNC">=</span><span class="STRN">'getLatLon'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>793</span>
<span class='line'>794</span> </span><span class="COMM">// running now</span><span class="WHIT">
<span class='line'>795</span> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>796</span>
<span class='line'>797</span> </span><span class="COMM">// interval/timeout seed</span><span class="WHIT">
<span class='line'>798</span> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">+</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">*</span><span class="NUMB">1</span><span class="NAME">e12</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>799</span>
<span class='line'>800</span>
<span class='line'>801</span> </span><span class="COMM">// { address: [function(lat, lng, address), not found function(address)], .. }</span><span class="WHIT">
<span class='line'>802</span> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>803</span>
<span class='line'>804</span> </span><span class="COMM">// queue: [ adr, .. ]</span><span class="WHIT">
<span class='line'>805</span> </span><span class="NAME">q</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>806</span>
<span class='line'>807</span>
<span class='line'>808</span> </span><span class="COMM">// map object</span><span class="WHIT">
<span class='line'>809</span> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>810</span>
<span class='line'>811</span> </span><span class="COMM">// initial</span><span class="WHIT">
<span class='line'>812</span> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>813</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">YMap</span><span class="PUNC">!=</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>814</span> </span><span class="WHIT"> </span><span class="COMM">//sl(n+': Please include YMap first!');</span><span class="WHIT">
<span class='line'>815</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>816</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>817</span>
<span class='line'>818</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>819</span> </span><span class="WHIT"> </span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>820</span> </span><span class="WHIT"> </span><span class="NAME">o.style.width</span><span class="PUNC">=</span><span class="NAME">o.style.height</span><span class="PUNC">=</span><span class="STRN">'1px'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// =0 會造成 .getArea() 出問題</span><span class="WHIT">
<span class='line'>821</span> </span><span class="WHIT"> </span><span class="NAME">YEvent.Capture</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">YMap</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">EventsList.onEndGeoCode</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>822</span> </span><span class="WHIT"> </span><span class="NAME">o.style.visibility</span><span class="PUNC">=</span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>823</span> </span><span class="WHIT"> </span><span class="COMM">//o.style.display='none'; // 會造成 .getArea() 出問題</span><span class="WHIT">
<span class='line'>824</span>
<span class='line'>825</span> </span><span class="WHIT"> </span><span class="COMM">//s=Math.random()*1e12+'';</span><span class="WHIT">
<span class='line'>826</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>827</span>
<span class='line'>828</span>
<span class='line'>829</span> </span><span class="COMM">// do query</span><span class="WHIT">
<span class='line'>830</span> </span><span class="NAME">d</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>831</span> </span><span class="WHIT"> </span><span class="COMM">//sl(n+'.do query: '+q[0]);</span><span class="WHIT">
<span class='line'>832</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">q</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">q.length</span><span class="PUNC">)</span><span class="NAME">r</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>833</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">m.geoCodeAddress</span><span class="PUNC">(</span><span class="NAME">q.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>834</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>835</span>
<span class='line'>836</span>
<span class='line'>837</span> </span><span class="COMM">// catch function</span><span class="WHIT">
<span class='line'>838</span> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>839</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">r.Address</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>840</span>
<span class='line'>841</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">_.interval</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>842</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'("'</span><span class="PUNC">+</span><span class="NAME">s</span><span class="PUNC">+</span><span class="STRN">'");'</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>843</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>844</span>
<span class='line'>845</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>846</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">r.success</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">r.GeoPoint.Lat</span><span class="PUNC">,</span><span class="NAME">r.GeoPoint.Lon</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>847</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>848</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>849</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>850</span>
<span class='line'>851</span>
<span class='line'>852</span> </span><span class="COMM">// instance constructor ---------------------------</span><span class="WHIT">
<span class='line'>853</span> </span><span class="NAME">_</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">nf</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// address, function, not found function</span><span class="WHIT">
<span class='line'>854</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">===</span><span class="NAME">s</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>855</span>
<span class='line'>856</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">f</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">&&</span><span class="NAME">i</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>857</span>
<span class='line'>858</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">nf</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>859</span>
<span class='line'>860</span> </span><span class="WHIT"> </span><span class="COMM">//sl(n+': ('+q.length+')'+[a,f,nf]);</span><span class="WHIT">
<span class='line'>861</span> </span><span class="WHIT"> </span><span class="NAME">q.push</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>862</span>
<span class='line'>863</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">r</span><span class="PUNC">)</span><span class="NAME">r</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>864</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>865</span>
<span class='line'>866</span>
<span class='line'>867</span> </span><span class="COMM">// class public interface ---------------------------</span><span class="WHIT">
<span class='line'>868</span>
<span class='line'>869</span> </span><span class="COMM">// interval (ms)</span><span class="WHIT">
<span class='line'>870</span> </span><span class="NAME">_.interval</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>871</span>
<span class='line'>872</span>
<span class='line'>873</span> </span><span class="COMM">// class constructor ---------------------------</span><span class="WHIT">
<span class='line'>874</span>
<span class='line'>875</span> </span><span class="NAME">i</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>876</span>
<span class='line'>877</span>
<span class='line'>878</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>879</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// (function(){</span><span class="WHIT">
<span class='line'>880</span>
<span class='line'>881</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>882</span>
<span class='line'>883</span>
<span class='line'>884</span> </span><span class="COMM">/* old
<span class='line'>885</span> // use Yahoo! Map
<span class='line'>886</span>
<span class='line'>887</span> // interval
<span class='line'>888</span> //getLatLon.t=200;
<span class='line'>889</span>
<span class='line'>890</span> // { address: [function, not found function], .. }
<span class='line'>891</span> getLatLon.o={};
<span class='line'>892</span>
<span class='line'>893</span> // queue: [ adr, .. ]
<span class='line'>894</span> getLatLon.q=[];
<span class='line'>895</span>
<span class='line'>896</span> // initial
<span class='line'>897</span> getLatLon.i=function(){
<span class='line'>898</span> if(typeof YMap!='function'){
<span class='line'>899</span> //sl('getLatLon: Please include YMap first!');
<span class='line'>900</span> return 1;
<span class='line'>901</span> }
<span class='line'>902</span> var c=document.createElement('div');
<span class='line'>903</span> document.body.appendChild(c);
<span class='line'>904</span> c.style.width=c.style.height=0;
<span class='line'>905</span> YEvent.Capture(this.m=new YMap(c),EventsList.onEndGeoCode,this.c);
<span class='line'>906</span> c.style.display='none';
<span class='line'>907</span> this.T=Math.random()*1e12+'';
<span class='line'>908</span> };
<span class='line'>909</span>
<span class='line'>910</span> // catch function
<span class='line'>911</span> getLatLon.c=function(r){
<span class='line'>912</span> var t=getLatLon;
<span class='line'>913</span> if(t.t)setTimeout('getLatLon.d("'+t.T+'");',t.t);else getLatLon.d();
<span class='line'>914</span> var f=t.o;
<span class='line'>915</span> if(r.Address in f)
<span class='line'>916</span> if(f=f[r.Address],r.success)f[0](r.GeoPoint.Lat,r.GeoPoint.Lon,r.Address);
<span class='line'>917</span> else f[1]&&f[1](r.Address);
<span class='line'>918</span> delete t.o[r.Address];
<span class='line'>919</span> }
<span class='line'>920</span>
<span class='line'>921</span> // do query
<span class='line'>922</span> getLatLon.d=function(){
<span class='line'>923</span> var _f=arguments.callee,_t=this,a,f,n;
<span class='line'>924</span> //sl('getLatLon.d: '+_t.q[0]);
<span class='line'>925</span> if(!_t.q||!_t.q.length)_t.r=0;
<span class='line'>926</span> else _t.m.geoCodeAddress(_t.q.shift());
<span class='line'>927</span> };
<span class='line'>928</span>
<span class='line'>929</span>
<span class='line'>930</span> // running
<span class='line'>931</span> //getLatLon.r=0;
<span class='line'>932</span>
<span class='line'>933</span> function getLatLon(adr,f,nf){
<span class='line'>934</span> var _f=arguments.callee;
<span class='line'>935</span> if(adr===_f.T)return _f.d();
<span class='line'>936</span> if(!adr||!f || !_f.m&&_f.i())return;
<span class='line'>937</span>
<span class='line'>938</span> if(!_f.q)_f.q=[];
<span class='line'>939</span> //sl('getLatLon: ('+_f.q.length+')'+[adr,f,nf]);
<span class='line'>940</span> _f.o[adr]=[f,nf];
<span class='line'>941</span> _f.q.push(adr);
<span class='line'>942</span>
<span class='line'>943</span> if(!_f.r){_f.r=1;_f.d();}
<span class='line'>944</span> }
<span class='line'>945</span> */</span><span class="WHIT">
<span class='line'>946</span>
<span class='line'>947</span>
<span class='line'>948</span>
<span class='line'>949</span>
<span class='line'>950</span>
<span class='line'>951</span>
<span class='line'>952</span>
<span class='line'>953</span>
<span class='line'>954</span> </span><span class="WHIT"> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>955</span>
<span class='line'>956</span> </span><span class="COMM">/*
<span class='line'>957</span> main map function
<span class='line'>958</span>
<span class='line'>959</span> _=this
<span class='line'>960</span>
<span class='line'>961</span> TODO:
<span class='line'>962</span>
<span class='line'>963</span> */</span><span class="WHIT">
<span class='line'>964</span>
<span class='line'>965</span> </span><span class="COMM">//var</span><span class="WHIT">
<span class='line'>966</span> </span><span class="NAME">gMap</span><span class="PUNC">=</span><span class="WHIT">
<span class='line'>967</span>
<span class='line'>968</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>969</span>
<span class='line'>970</span> </span><span class="COMM">// class private -----------------------------------</span><span class="WHIT">
<span class='line'>971</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>972</span>
<span class='line'>973</span> </span><span class="COMM">// class interface -----------------------------------</span><span class="WHIT">
<span class='line'>974</span> </span><span class="NAME">_</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>975</span> </span><span class="WHIT"> </span><span class="COMM">// Dynamic Loading http://code.google.com/apis/ajax/documentation/#Dynamic</span><span class="WHIT">
<span class='line'>976</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof GMap=='undefined')google.load("maps","2",{language:"ja_JP",callback:mapsLoaded});</span><span class="WHIT">
<span class='line'>977</span>
<span class='line'>978</span> </span><span class="WHIT"> </span><span class="COMM">// init member</span><span class="WHIT">
<span class='line'>979</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>980</span> </span><span class="WHIT"> </span><span class="COMM">// initial instance object</span><span class="WHIT">
<span class='line'>981</span> </span><span class="WHIT"> </span><span class="NAME">_t.locArray</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">_t.locArray2</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">_t.locArray_u</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">_t.locArray2_u</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">_t.iconA</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">_t.iconO</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">_t.dMarkerO</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>982</span> </span><span class="WHIT"> </span><span class="NAME">_t.kinds</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="NAME">marker</span><span class="PUNC">:</span><span class="NAME">GMarker</span><span class="PUNC">,</span><span class="NAME">polyline</span><span class="PUNC">:</span><span class="NAME">GPolyline</span><span class="PUNC">,</span><span class="NAME">polygon</span><span class="PUNC">:</span><span class="NAME">GPolygon</span><span class="PUNC">,</span><span class="NAME">xml</span><span class="PUNC">:</span><span class="NAME">GGeoXml</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// If this failed, maybe GMap didn't loaded?</span><span class="WHIT">
<span class='line'>983</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_t.kinds</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>984</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">)</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'Error: ['</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">'] is already a member of me!'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>985</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>986</span>
<span class='line'>987</span>
<span class='line'>988</span> </span><span class="WHIT"> </span><span class="COMM">// 調整 GLatLng 的顯示</span><span class="WHIT">
<span class='line'>989</span> </span><span class="WHIT"> </span><span class="NAME">GLatLng.prototype.toS</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>990</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">p</span><span class="PUNC">)</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">_t.precision</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>991</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Number</span><span class="PUNC">(</span><span class="NAME">this.lat</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toFixed</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">Number</span><span class="PUNC">(</span><span class="NAME">this.lng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toFixed</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>992</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>993</span> </span><span class="WHIT"> </span><span class="NAME">GLatLng.prototype.toString</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">+</span><span class="NAME">this.toS</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>994</span>
<span class='line'>995</span>
<span class='line'>996</span> </span><span class="COMM">/*
<span class='line'>997</span> http://blog.wctang.info/2007/07/use-google-map-api-without-api-key.html
<span class='line'>998</span> Geocode 查詢每天有 50000 次的限制 使用 Geocoder 就是要連到 Google 去做查詢,而現在 Google 在做 Geocode 查詢時會在 Server 端做 API key 的檢查,這個就躲不掉了
<span class='line'>999</span> http://blog.wctang.info/2007/07/use-google-map-geocoder-without-api-key.html
<span class='line'>1000</span>
<span class='line'>1001</span>
<span class='line'>1002</span> */</span><span class="WHIT">
<span class='line'>1003</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">GBrowserIsCompatible</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">_t.geocoder</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1004</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">_t.geocoder</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GClientGeocoder</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1005</span> </span><span class="WHIT"> </span><span class="NAME">setCache</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// disable cache, 因為找到的都被管控了。</span><span class="WHIT">
<span class='line'>1006</span> </span><span class="WHIT"> </span><span class="NAME">setBaseCountryCode</span><span class="PUNC">(</span><span class="STRN">'tw'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 語系</span><span class="WHIT">
<span class='line'>1007</span>
<span class='line'>1008</span> </span><span class="WHIT"> </span><span class="COMM">//_t.readLoc();</span><span class="WHIT">
<span class='line'>1009</span> </span><span class="WHIT"> </span><span class="NAME">_t.initMap.apply</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//return _t.initMap.apply(_t,arguments);</span><span class="WHIT">
<span class='line'>1010</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1011</span>
<span class='line'>1012</span>
<span class='line'>1013</span> </span><span class="COMM">// class public -----------------------------------</span><span class="WHIT">
<span class='line'>1014</span>
<span class='line'>1015</span>
<span class='line'>1016</span> </span><span class="COMM">// prototype -----------------------------------</span><span class="WHIT">
<span class='line'>1017</span> </span><span class="NAME">_.prototype</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1018</span>
<span class='line'>1019</span> </span><span class="COMM">// 這些函數可重寫</span><span class="WHIT">
<span class='line'>1020</span> </span><span class="NAME">notFound</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">address</span><span class="PUNC">,</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1021</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="COMM">//throw 'Address ['+address+'] not found!';</span><span class="WHIT">
<span class='line'>1022</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1023</span> </span><span class="COMM">// 增加 overlay 後</span><span class="WHIT">
<span class='line'>1024</span> </span><span class="NAME">runAfterAdd</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">,</span><span class="NAME">data</span><span class="PUNC">,</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1025</span> </span><span class="COMM">// 移除 overlay 後</span><span class="WHIT">
<span class='line'>1026</span> </span><span class="NAME">runAfterRemove</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1027</span> </span><span class="COMM">// 按 overlay 時</span><span class="WHIT">
<span class='line'>1028</span> </span><span class="NAME">runOnClick</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1029</span>
<span class='line'>1030</span> </span><span class="NAME">precision</span><span class="PUNC">:</span><span class="NUMB">6</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// 精度算到小數點下第幾位。GMap 2008:6</span><span class="WHIT">
<span class='line'>1031</span>
<span class='line'>1032</span> </span><span class="NAME">defaultZoom</span><span class="PUNC">:</span><span class="NUMB">14</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// 預設縮放</span><span class="WHIT">
<span class='line'>1033</span>
<span class='line'>1034</span> </span><span class="COMM">/*
<span class='line'>1035</span> map, // GMap obj
<span class='line'>1036</span>
<span class='line'>1037</span> TODO:
<span class='line'>1038</span> use GMarkerManager, http://code.google.com/apis/maps/documentation/overlays.html#Marker_Manager
<span class='line'>1039</span>
<span class='line'>1040</span>
<span class='line'>1041</span> //handle array:
<span class='line'>1042</span> marker={'lat,lng':GMarker}, // GMarker 地圖標記
<span class='line'>1043</span> polyline={points:GPolyline}, // GPolyline 折線
<span class='line'>1044</span> polygon={points:GPolygon}, // GPolygon 多邊形
<span class='line'>1045</span> xml={URL:GGeoXml}, // GGeoXml: xml/kml
<span class='line'>1046</span> */</span><span class="WHIT">
<span class='line'>1047</span> </span><span class="NAME">kinds</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1048</span> </span><span class="NAME">supportKind</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1049</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">?</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.kinds</span><span class="PUNC">:</span><span class="NAME">this.kinds</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1050</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1051</span>
<span class='line'>1052</span> </span><span class="NAME">getKind</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1053</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.kinds</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1054</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">this.kinds</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1055</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1056</span>
<span class='line'>1057</span>
<span class='line'>1058</span> </span><span class="COMM">// 讀入先前 catch 的經緯度存loc而不必每次search</span><span class="WHIT">
<span class='line'>1059</span> </span><span class="NAME">readLoc</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1060</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1061</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_t.locFP</span><span class="PUNC">)</span><span class="NAME">_t.locFP</span><span class="PUNC">=</span><span class="STRN">'map_loc.dat'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 紀錄 LatLng/地址 可供 searchPoint() 使用</span><span class="WHIT">
<span class='line'>1062</span> </span><span class="WHIT"> </span><span class="COMM">// GDownloadUrl(url,callback)</span><span class="WHIT">
<span class='line'>1063</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">_t.locFP</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1064</span> </span><span class="WHIT"> </span><span class="NAME">_t.adr_to_loc</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1065</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">t.replace</span><span class="PUNC">(</span><span class="REGX">/\r/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1066</span>
<span class='line'>1067</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'Get '</span><span class="PUNC">+</span><span class="NAME">t.length</span><span class="PUNC">+</span><span class="STRN">' catched address records from ['</span><span class="PUNC">+</span><span class="NAME">_t.locFP</span><span class="PUNC">+</span><span class="STRN">'].'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1068</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1069</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">></span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1070</span> </span><span class="WHIT"> </span><span class="NAME">_t.adr_to_loc</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1071</span> </span><span class="WHIT"> </span><span class="COMM">//,sl('readLoc: ['+a[1]+'] '+_t.adr_to_loc[a[1]])</span><span class="WHIT">
<span class='line'>1072</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1073</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'readLoc: error data: '</span><span class="PUNC">+</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1074</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1075</span>
<span class='line'>1076</span> </span><span class="COMM">// ** important ** 這邊不能作 object 之 initialization否則因為 object 只會 copy reference因此 new 時東西會一樣。initialization 得在 _() 中作!</span><span class="WHIT">
<span class='line'>1077</span> </span><span class="COMM">// locArray[]=[lat,lng,adr] sort by lat 給 writeLoc() & getNeighbor() 用,僅包含需要 search 的。</span><span class="WHIT">
<span class='line'>1078</span> </span><span class="NAME">locArray</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1079</span> </span><span class="COMM">// 寫入 catched 的經緯度</span><span class="WHIT">
<span class='line'>1080</span> </span><span class="NAME">writeLoc</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1081</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_t.precision</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1082</span> </span><span class="WHIT"> </span><span class="COMM">//sl('writeLoc: We will write data to ['+_t.locFP+'].');</span><span class="WHIT">
<span class='line'>1083</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_t.locFP</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1084</span>
<span class='line'>1085</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_t.adr_to_loc</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1086</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">_t.adr_to_loc</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1087</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">Number</span><span class="PUNC">(</span><span class="NAME">l.lat</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">Number</span><span class="PUNC">(</span><span class="NAME">l.lng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="STRN">'經緯度非數字'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1088</span> </span><span class="WHIT"> </span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">b.toFixed</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">c.toFixed</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1089</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'writeLoc: Error: '</span><span class="PUNC">+</span><span class="NAME">e.message</span><span class="PUNC">+</span><span class="STRN">': ['</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">+</span><span class="STRN">'] '</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">', ('</span><span class="PUNC">+</span><span class="NAME">l.lat</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">l.lng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1090</span>
<span class='line'>1091</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'writeLoc: '</span><span class="PUNC">+</span><span class="NAME">_t.locArray.length</span><span class="PUNC">+</span><span class="STRN">'→'</span><span class="PUNC">+</span><span class="NAME">t.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1092</span> </span><span class="WHIT"> </span><span class="COMM">// 不相同時才作處理</span><span class="WHIT">
<span class='line'>1093</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t.length</span><span class="PUNC">!=</span><span class="NAME">_t.locArray.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1094</span> </span><span class="WHIT"> </span><span class="NAME">t.sort</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1095</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_t.locArray</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">_t.locArray_u</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1096</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1097</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'writeLoc: 重複住址@ '</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">': '</span><span class="PUNC">+</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">' , '</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1098</span> </span><span class="WHIT"> </span><span class="NAME">a.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1099</span> </span><span class="WHIT"> </span><span class="NAME">c.push</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">' '</span><span class="PUNC">+</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1100</span> </span><span class="WHIT"> </span><span class="COMM">//sl('writeLoc: '+i+'/'+t.length+' '+c[c.length-1]); // 多!!</span><span class="WHIT">
<span class='line'>1101</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1102</span> </span><span class="WHIT"> </span><span class="COMM">//sl('writeLoc: '+(typeof simpleWrite)+','+_t.locFP);</span><span class="WHIT">
<span class='line'>1103</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">simpleWrite</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1104</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">c.join</span><span class="PUNC">(</span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1105</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">simpleRead</span><span class="PUNC">(</span><span class="NAME">_t.locFP</span><span class="PUNC">,</span><span class="STRN">'utf-8'</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1106</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'writeLoc: 欲寫入之內容('</span><span class="PUNC">+</span><span class="NAME">c.length</span><span class="PUNC">+</span><span class="STRN">' chars)與標的檔相同。檔案並未變更。'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1107</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
<span class='line'>1108</span> </span><span class="WHIT"> </span><span class="COMM">//sl('writeLoc: Write '+c.length+' chars to ['+_t.locFP+'].'),</span><span class="WHIT">
<span class='line'>1109</span> </span><span class="WHIT"> </span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">_t.locFP</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">,</span><span class="STRN">'utf-8'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1110</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="COMM">//else sl('writeLoc: &lt;em>Warning: function.js is not included?&lt;/em>');</span><span class="WHIT">
<span class='line'>1111</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1112</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'&lt;textarea>'</span><span class="PUNC">+</span><span class="NAME">t.join</span><span class="PUNC">(</span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'&lt;/textarea>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1113</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1114</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1115</span> </span><span class="COMM">// locArray2[]=[lat,lng,adr] sort by lat 給 getNeighbor() 用,包括所有不需要 search 的地址。</span><span class="WHIT">
<span class='line'>1116</span> </span><span class="NAME">locArray2</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1117</span> </span><span class="NAME">locArray_u</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">locArray2_u</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// 預防重複: locArray_u['lat,lng']=obj of locArray or locArray2</span><span class="WHIT">
<span class='line'>1118</span> </span><span class="COMM">/* 取得鄰近的地點: 經緯度, 最大距離(km) http://blog.ben.idv.tw/2007/06/blog-post.html http://hk.geocities.com/hk_weather/big5/others/calculators.html http://blog.xuite.net/joy715/blog/9285691 http://iask.sina.com.cn/b/6263160.html
<span class='line'>1119</span> mapO.getNeighbor([22.620096,120.333381],"sl(n[i][1][2]);");
<span class='line'>1120</span> return:
<span class='line'>1121</span> f.d: 距離(km)
<span class='line'>1122</span> f.c: 最多取用點數,&lt;=0全取未設default
<span class='line'>1123</span> f.s: 最後時選取與否的篩選設置之函數 傳回數值越大越後面
<span class='line'>1124</span> f.D: 計算距離之函數,將用來比較
<span class='line'>1125</span> default [ [較準確的距離, [lat,lng,adr]],.. ]
<span class='line'>1126</span> 求得較大概的距離(以距離平方比計算,比較快)
<span class='line'>1127</span> [ [距離, [lat,lng,adr]],.. ] f.D=function(p,l){var a=l.lat()-p[0],b=l.lng()-p[1];return a*a+b*b;}
<span class='line'>1128</span>
<span class='line'>1129</span> f.f: 對選出之 spot 作最後處置之函數
<span class='line'>1130</span> default [ [較準確的距離, [lat,lng,adr]],.. ]
<span class='line'>1131</span> 傳回地址 [ adr1, adr2,.. ] f.f= 'n[i]=n[i][1][2];'
<span class='line'>1132</span> 傳回 obj [ [lat,lng,adr],.. ] f.f= 'n[i]=n[i][1];'
<span class='line'>1133</span> 求得較準確的距離 [ [距離, [lat,lng,adr]],.. ] f.f= 'n[i][1]=l.distanceFrom(n[i][1]);'
<span class='line'>1134</span> */</span><span class="WHIT">
<span class='line'>1135</span> </span><span class="NAME">getNeighbor</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1136</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">lat</span><span class="PUNC">,</span><span class="NAME">lng</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">A</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1137</span> </span><span class="WHIT"> </span><span class="COMM">// 計算最接近上限mLat之loc</span><span class="WHIT">
<span class='line'>1138</span> </span><span class="WHIT"> </span><span class="COMM">// c: 誤差</span><span class="WHIT">
<span class='line'>1139</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">j</span><span class="PUNC">=</span><span class="NAME">A.length</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">f._d</span><span class="PUNC">,</span><span class="NAME">mLat</span><span class="PUNC">=</span><span class="NAME">lat</span><span class="PUNC">-</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1140</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">j</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1141</span> </span><span class="WHIT"> </span><span class="COMM">//sl(mLat+'~'+(lat+c));</span><span class="WHIT">
<span class='line'>1142</span> </span><span class="WHIT"> </span><span class="KEYW">do</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1143</span> </span><span class="WHIT"> </span><span class="COMM">//sl(Math.floor((i+j)/2)+'/'+A.length+','+A[a=Math.floor((i+j)/2)]);</span><span class="WHIT">
<span class='line'>1144</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">A</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NAME">j</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1145</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">></span><span class="NAME">mLat</span><span class="PUNC">)</span><span class="NAME">j</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">&lt;</span><span class="NAME">mLat</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1146</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">j</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">-</span><span class="NAME">mLat</span><span class="PUNC">)</span><span class="PUNC">></span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1147</span> </span><span class="WHIT"> </span><span class="COMM">//sl('start: from ['+a+'/'+A.length+'] '+A[a].join(':')+' to '+(lat+c));var tt=[];</span><span class="WHIT">
<span class='line'>1148</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">mLat</span><span class="PUNC">=</span><span class="NAME">lat</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">lng</span><span class="PUNC">-</span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">lng</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">A.length</span><span class="PUNC">&&</span><span class="NAME">A</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">&lt;</span><span class="NAME">mLat</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1149</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="COMM">/*tt.push('- '+A[i]+': '+a+','+c+','+b),*/</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">A</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">&lt;</span><span class="NAME">c</span><span class="PUNC">&&</span><span class="NAME">c</span><span class="PUNC">&lt;</span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1150</span> </span><span class="WHIT"> </span><span class="COMM">//n.push([j=f.D(A[i],l),A[i]]),sl('distance: '+j.toFixed(2)+' to '+A[i]);</span><span class="WHIT">
<span class='line'>1151</span> </span><span class="WHIT"> </span><span class="NAME">n.push</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">f.D</span><span class="PUNC">(</span><span class="NAME">A</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">A</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1152</span> </span><span class="WHIT"> </span><span class="COMM">//sl(tt.join('&lt;br/>'));</span><span class="WHIT">
<span class='line'>1153</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1154</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">l.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1155</span> </span><span class="WHIT"> </span><span class="COMM">//if(typeof l=='function'&&l.lat&&l.lng)lat=typeof l.lat=='function'?l.lat():l.lat,lng=typeof l.lng=='function'?l.lng():l.lng;</span><span class="WHIT">
<span class='line'>1156</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">)</span><span class="NAME">lat</span><span class="PUNC">=</span><span class="NAME">l.lat</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">lng</span><span class="PUNC">=</span><span class="NAME">l.lng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1157</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">lat</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">lng</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">lat</span><span class="PUNC">,</span><span class="NAME">lng</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1158</span> </span><span class="WHIT"> </span><span class="COMM">// 這邊起 l 為原始點之 GLatLng</span><span class="WHIT">
<span class='line'>1159</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1160</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="PUNC">{</span><span class="NAME">f</span><span class="PUNC">:</span><span class="NAME">f</span><span class="PUNC">}</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="NAME">d</span><span class="PUNC">:</span><span class="NAME">f</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1161</span> </span><span class="WHIT"> </span><span class="NAME">f._d</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">f.d</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">?</span><span class="NAME">f.d</span><span class="PUNC">:</span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">111</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 1度的實際長度~111公里。</span><span class="WHIT">
<span class='line'>1162</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">f.D</span><span class="PUNC">)</span><span class="NAME">f.D</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1163</span> </span><span class="WHIT"> </span><span class="COMM">//var a=lat-p[0],b=lng-p[1];return a*a+b*b; // 大概的,比較快。</span><span class="WHIT">
<span class='line'>1164</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l.distanceFrom</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// real distance</span><span class="WHIT">
<span class='line'>1165</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1166</span>
<span class='line'>1167</span> </span><span class="WHIT"> </span><span class="COMM">//sl(lng+', '+lat+'; '+f._d);</span><span class="WHIT">
<span class='line'>1168</span> </span><span class="WHIT"> </span><span class="NAME">_t.writeLoc</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1169</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">(</span><span class="NAME">_t.locArray</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1170</span> </span><span class="WHIT"> </span><span class="NAME">_t.locArray2.sort</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1171</span> </span><span class="WHIT"> </span><span class="COMM">//sl('['+_t.locArray2.length+']&lt;br/>* '+_t.locArray2.join('&lt;br/>* '));</span><span class="WHIT">
<span class='line'>1172</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">(</span><span class="NAME">_t.locArray2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1173</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Get '+n.length+' records near ('+lat+','+lng+').');</span><span class="WHIT">
<span class='line'>1174</span>
<span class='line'>1175</span> </span><span class="WHIT"> </span><span class="COMM">// 由近至遠 sort</span><span class="WHIT">
<span class='line'>1176</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f.s</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">f.s</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// l, r: [distance by f.D,[lat,lng,adr]]</span><span class="WHIT">
<span class='line'>1177</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f.s</span><span class="PUNC">)</span><span class="NAME">n.sort</span><span class="PUNC">(</span><span class="NAME">f.s</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1178</span> </span><span class="WHIT"> </span><span class="COMM">//for(i=0;i&lt;n.length;i++)sl('getNeighbor '+i+': '+n[i][0]+' '+n[i][1][2]);</span><span class="WHIT">
<span class='line'>1179</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f.c</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">||</span><span class="NAME">f.c</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">f.c</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">n.length</span><span class="PUNC">></span><span class="NAME">f.c</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1180</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">n.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">f.c</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">?</span><span class="NAME">f.c</span><span class="PUNC">:</span><span class="NUMB">9</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 預設取 9 個</span><span class="WHIT">
<span class='line'>1181</span>
<span class='line'>1182</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f.f</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">f.f</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Function</span><span class="PUNC">(</span><span class="STRN">'n'</span><span class="PUNC">,</span><span class="STRN">'i'</span><span class="PUNC">,</span><span class="STRN">'l'</span><span class="PUNC">,</span><span class="NAME">f.f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1183</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Run: [~'+n.length+'] by '+f.f);</span><span class="WHIT">
<span class='line'>1184</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f.f</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1185</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">n.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">f.f</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1186</span>
<span class='line'>1187</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1188</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1189</span> </span><span class="COMM">/*
<span class='line'>1190</span> http://econym.googlepages.com/geomulti.htm
<span class='line'>1191</span> http://econym.googlepages.com/didyoumean.htm
<span class='line'>1192</span> enum GGeoStatusCode http://code.google.com/intl/zh-CN/apis/maps/documentation/reference.html#GGeoStatusCode
<span class='line'>1193</span> */</span><span class="WHIT">
<span class='line'>1194</span> </span><span class="NAME">GeoStatus</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1195</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">this.GeoStatusM</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1196</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1197</span> </span><span class="WHIT"> </span><span class="NAME">this.GeoStatusM</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1198</span> </span><span class="WHIT"> </span><span class="NAME">G_GEO_SERVER_ERROR</span><span class="PUNC">:</span><span class="STRN">'伺服器錯誤。'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1199</span> </span><span class="WHIT"> </span><span class="NAME">G_GEO_MISSING_QUERY</span><span class="PUNC">:</span><span class="STRN">'輸入空地址。'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1200</span> </span><span class="WHIT"> </span><span class="NAME">G_GEO_UNKNOWN_ADDRESS</span><span class="PUNC">:</span><span class="STRN">'找不到指定地址的對應地理位置。可能地址比較新,無法解析地址,地址不正確,或者缺少該地址的數據。'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1201</span> </span><span class="WHIT"> </span><span class="NAME">G_GEO_UNAVAILABLE_ADDRESS</span><span class="PUNC">:</span><span class="STRN">'由於合法性或合同原因,無法返回給定地址的地理位置信息。'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1202</span> </span><span class="WHIT"> </span><span class="NAME">G_GEO_BAD_KEY</span><span class="PUNC">:</span><span class="STRN">'給定的密鑰無效或與給定的 host ('</span><span class="PUNC">+</span><span class="NAME">window.location.host</span><span class="PUNC">+</span><span class="STRN">') 不匹配。'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1203</span> </span><span class="WHIT"> </span><span class="NAME">G_GEO_TOO_MANY_QUERIES</span><span class="PUNC">:</span><span class="STRN">'給定的密鑰超出了 24 小時的請求限制。'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1204</span> </span><span class="WHIT"> </span><span class="COMM">//404:'沒找到網頁',</span><span class="WHIT">
<span class='line'>1205</span> </span><span class="WHIT"> </span><span class="NUMB">403</span><span class="PUNC">:</span><span class="STRN">'Probably an incorrect error caused by a bug in the handling of invalid JSON'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1206</span> </span><span class="WHIT"> </span><span class="NAME">G_GEO_SUCCESS</span><span class="PUNC">:</span><span class="STRN">'查詢成功'</span><span class="WHIT">
<span class='line'>1207</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1208</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1209</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1210</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">=</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">v</span><span class="PUNC">!=</span><span class="NAME">i</span><span class="PUNC">)</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">v</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1211</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1212</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1213</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1214</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1215</span> </span><span class="COMM">/* mapO.getLocations('taiwan',function(r){});
<span class='line'>1216</span> arguments:
<span class='line'>1217</span> address, function([[lat,lng,adr], ..]), data object
<span class='line'>1218</span> address, [deal function, (預設0: 傳入 [[lat,lng,adr], ..], 1: 傳入 GClientGeocoder.getLocations)], data object
<span class='line'>1219</span>
<span class='line'>1220</span> http://code.google.com/apis/maps/documentation/services.html#Geocoding_Structured
<span class='line'>1221</span> http://code.google.com/apis/kml/documentation/kmlreference.html#placemark
<span class='line'>1222</span> http://www.step1.cn/googleapi/map/kml.htm#Placemark
<span class='line'>1223</span>
<span class='line'>1224</span> to use:
<span class='line'>1225</span> mapO.getLocations('宿舍',function(r){for(var i=0;i&lt;r.length;i++)sl(i+'/'+r.length+' '+r[i]);});
<span class='line'>1226</span> */</span><span class="WHIT">
<span class='line'>1227</span> </span><span class="NAME">getLocations</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">,</span><span class="NAME">func</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1228</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">,</span><span class="NAME">a</span><span class="WHIT">
<span class='line'>1229</span> </span><span class="WHIT"> </span><span class="COMM">// country code</span><span class="WHIT">
<span class='line'>1230</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">cc</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="NAME">TW</span><span class="PUNC">:</span><span class="STRN">'台灣'</span><span class="PUNC">,</span><span class="NAME">US</span><span class="PUNC">:</span><span class="STRN">'United States'</span><span class="PUNC">,</span><span class="NAME">JP</span><span class="PUNC">:</span><span class="STRN">'日本'</span><span class="PUNC">,</span><span class="NAME">CN</span><span class="PUNC">:</span><span class="STRN">'中国'</span><span class="PUNC">,</span><span class="NAME">KR</span><span class="PUNC">:</span><span class="STRN">'大韓民國'</span><span class="PUNC">,</span><span class="NAME">KP</span><span class="PUNC">:</span><span class="STRN">'朝鮮'</span><span class="PUNC">,</span><span class="NAME">UK</span><span class="PUNC">:</span><span class="STRN">'United Kingdom'</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1231</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">ga</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 從 Placemark 得到住址(address)資料</span><span class="WHIT">
<span class='line'>1232</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1233</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">p.AddressDetails.Country</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1234</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">c.CountryNameCode</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1235</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">b</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">cc</span><span class="PUNC">?</span><span class="PUNC">[</span><span class="NAME">cc</span><span class="PUNC">[</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1236</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">c.AdministrativeArea</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1237</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">c.AdministrativeAreaName</span><span class="PUNC">)</span><span class="NAME">a.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1238</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">c.SubAdministrativeArea</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1239</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">c.SubAdministrativeAreaName</span><span class="PUNC">)</span><span class="NAME">a.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1240</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">c.Locality</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1241</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">c.PostalCode</span><span class="PUNC">)</span><span class="NAME">a.unshift</span><span class="PUNC">(</span><span class="STRN">'['</span><span class="PUNC">+</span><span class="NAME">b.PostalCodeNumber</span><span class="PUNC">+</span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1242</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">c.LocalityName</span><span class="PUNC">)</span><span class="NAME">a.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1243</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">c.Thoroughfare</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">c.ThoroughfareName</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1244</span> </span><span class="WHIT"> </span><span class="NAME">a.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1245</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1246</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1247</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1248</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">a.join</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1249</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1250</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">p.address</span><span class="PUNC">?</span><span class="NAME">p.address</span><span class="PUNC">+</span><span class="STRN">' ('</span><span class="PUNC">+</span><span class="NAME">a</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">:</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1251</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1252</span> </span><span class="WHIT"> </span><span class="COMM">// 預設代為處理函數組</span><span class="WHIT">
<span class='line'>1253</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="WHIT">
<span class='line'>1254</span> </span><span class="WHIT"> </span><span class="COMM">// 代為處理傳入 [lat,lng,adr]</span><span class="WHIT">
<span class='line'>1255</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1256</span> </span><span class="WHIT"> </span><span class="NAME">_f.errno</span><span class="PUNC">=</span><span class="NAME">r.Status.code</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1257</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1258</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">[</span><span class="NAME">r.lat</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">r.lng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">adr</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1259</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r.Status.code</span><span class="PUNC">==</span><span class="NAME">G_GEO_SUCCESS</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1260</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getLocations: Get '+r.Placemark.length+' place(s) of ['+r.name+'].');</span><span class="WHIT">
<span class='line'>1261</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getLocations: [0]: '+r.Placemark[0].name);</span><span class="WHIT">
<span class='line'>1262</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">r.name</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">r.Placemark</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1263</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">p.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1264</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">ga</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1265</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getLocations: ('+p[i].Point.coordinates+') '+a),</span><span class="WHIT">
<span class='line'>1266</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">Point.coordinates</span><span class="PUNC">,</span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1267</span> </span><span class="WHIT"> </span><span class="NAME">_t.adr_to_loc</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1268</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1269</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1270</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1271</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1272</span> </span><span class="WHIT"> </span><span class="COMM">// 代為處理傳入 Placemark</span><span class="WHIT">
<span class='line'>1273</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1274</span> </span><span class="WHIT"> </span><span class="NAME">_f.errno</span><span class="PUNC">=</span><span class="NAME">r.Status.code</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1275</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1276</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="NAME">Status</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="NAME">code</span><span class="PUNC">:</span><span class="NAME">G_GEO_SUCCESS</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">Placemark</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="PUNC">{</span><span class="NAME">Point</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="NAME">coordinates</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">}</span><span class="PUNC">}</span><span class="PUNC">]</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1277</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r.Status.code</span><span class="PUNC">==</span><span class="NAME">G_GEO_SUCCESS</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1278</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getLocations: find '+r.Placemark.length+' records, '+r.Placemark[0].Point.coordinates+': '+r.Placemark[0].address);</span><span class="WHIT">
<span class='line'>1279</span> </span><span class="WHIT"> </span><span class="COMM">//if(r.Placemark.length==1){var l=r.Placemark[0].Point.coordinates;_t.adr_to_loc[r.Placemark[0].address]=new GLatLng(l[1],l[0]);}</span><span class="WHIT">
<span class='line'>1280</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">r.name</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">r.Placemark</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">p.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">Point.coordinates</span><span class="PUNC">,</span><span class="NAME">_t.adr_to_loc</span><span class="PUNC">[</span><span class="NAME">ga</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">n</span><span class="PUNC">+</span><span class="STRN">'('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1281</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="COMM">//else sl('getLocations: search ['+adr+'] fault: ['+r.Status.code+'] '+_t.GeoStatus(r.Status.code));</span><span class="WHIT">
<span class='line'>1282</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1283</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1284</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1285</span>
<span class='line'>1286</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">func</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1287</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1288</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">?</span><span class="NAME">a</span><span class="WHIT">
<span class='line'>1289</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">==</span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>1290</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1291</span> </span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">=</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1292</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1293</span>
<span class='line'>1294</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t.getLatLng</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">,</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t.geocoder.getLocations</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1295</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1296</span>
<span class='line'>1297</span> </span><span class="COMM">// 直接手動設定</span><span class="WHIT">
<span class='line'>1298</span> </span><span class="NAME">setLatLng</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">,</span><span class="NAME">lat</span><span class="PUNC">,</span><span class="NAME">lng</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1299</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">lat</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">lat</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NAME">lat</span><span class="PUNC">,</span><span class="NAME">lng</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1300</span> </span><span class="WHIT"> </span><span class="NAME">this.adr_to_loc</span><span class="PUNC">[</span><span class="NAME">adr</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">lat</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1301</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'setLatLng: '</span><span class="PUNC">+</span><span class="NAME">lat</span><span class="PUNC">+</span><span class="STRN">' '</span><span class="PUNC">+</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1302</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">lat</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1303</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1304</span>
<span class='line'>1305</span> </span><span class="COMM">// 經緯度 RegExp</span><span class="WHIT">
<span class='line'>1306</span> </span><span class="NAME">LatLngR</span><span class="PUNC">:</span><span class="REGX">/^\s*(\d{1,3}(\.\d+)?)\s*,\s*(\d{1,3}(\.\d+)?)\s*$/</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1307</span>
<span class='line'>1308</span> </span><span class="COMM">/* 未設定 func 則僅回傳 catched 的位置
<span class='line'>1309</span> You can define your method by .f(adr,c), for example: search by specified SQL server.
<span class='line'>1310</span>
<span class='line'>1311</span> TODO:
<span class='line'>1312</span> 繼承 Geocoding cache
<span class='line'>1313</span> */</span><span class="WHIT">
<span class='line'>1314</span> </span><span class="NAME">getLatLng</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">,</span><span class="NAME">func</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// string address, (function(GLatLng) | [func:function(GLatLng), deal_func:function(GLatLng, address)]), data object</span><span class="WHIT">
<span class='line'>1315</span> </span><span class="WHIT"> </span><span class="COMM">//if(!adr)return;</span><span class="WHIT">
<span class='line'>1316</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1317</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">p</span><span class="PUNC">)</span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'getLatLng: Search failed: '</span><span class="PUNC">+</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1318</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="NAME">_t.adr_to_loc</span><span class="PUNC">[</span><span class="NAME">adr</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1319</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1320</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1321</span>
<span class='line'>1322</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">func</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1323</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">func</span><span class="PUNC">=</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1324</span>
<span class='line'>1325</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getLatLng: search '+adr);</span><span class="WHIT">
<span class='line'>1326</span> </span><span class="WHIT"> </span><span class="COMM">// 檢測是否為經緯度</span><span class="WHIT">
<span class='line'>1327</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">adr.match</span><span class="PUNC">(</span><span class="NAME">_t.LatLngR</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1328</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">&&</span><span class="NAME">d.description</span><span class="PUNC">||</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;[/</span><span class="PUNC">]</span><span class="PUNC">?</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">bh</span><span class="PUNC">]</span><span class="NAME">r</span><span class="PUNC">|</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="PUNC">^</span><span class="PUNC">></span><span class="PUNC">]</span><span class="PUNC">*</span><span class="PUNC">></span><span class="REGX">/ig,'\n').match(/</span><span class="PUNC">[</span><span class="PUNC">^</span><span class="TOKN">\</span><span class="NAME">r</span><span class="TOKN">\</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="PUNC">[</span><span class="TOKN"></span><span class="TOKN"></span><span class="TOKN"></span><span class="TOKN"></span><span class="PUNC">]</span><span class="PUNC">[</span><span class="PUNC">^</span><span class="TOKN">\</span><span class="NAME">r</span><span class="TOKN">\</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="REGX">/))
<span class='line'>1329</span> /</span><span class="REGX">/sl('('+m[1]+','+m[3]+') ['+a[0]+']'),
<span class='line'>1330</span> if(!((m[1]+','+m[3]) in _t.locArray2_u))_t.locArray2.push(_t.locArray2_u[m[1]+','+m[3]]=[m[1],m[3],a[0]]);
<span class='line'>1331</span> m=new GLatLng(m[1],m[3]);
<span class='line'>1332</span> return func?func(m):m;
<span class='line'>1333</span> /</span><span class="REGX">/ 搜尋已知地址
<span class='line'>1334</span> }else if((m=_t.adr_to_loc) && (m=m[adr]))/</span><span class="REGX">/sl('getLatLng: deal adr_to_loc['+adr+']='+m[adr]+' get '+(func?c(m):m)/</span><span class="PUNC">*</span><span class="PUNC">+</span><span class="STRN">' by '</span><span class="PUNC">+</span><span class="NAME">func</span><span class="PUNC">*</span><span class="REGX">/),
<span class='line'>1335</span> return func?c(m):m;
<span class='line'>1336</span> /</span><span class="REGX">/ 搜尋未知地址
<span class='line'>1337</span> else if(func)
<span class='line'>1338</span> /</span><span class="REGX">/sl('&lt;em>Not catched: '+adr+'&lt;/</span><span class="NAME">em</span><span class="PUNC">></span><span class="STRN">'),
<span class='line'>1339</span> return _t.geocoder.getLatLng(adr,typeof f=='</span><span class="KEYW">function</span><span class="STRN">'?function(m){f(m,adr);}:c); // 原來需要用 arguments.callee.f但若已經用 var 定義則可直接使用。
<span class='line'>1340</span> },
<span class='line'>1341</span>
<span class='line'>1342</span> /*
<span class='line'>1343</span> d={
<span class='line'>1344</span> name:'</span><span class="STRN">', // 這邊 name 被當作 id, title
<span class='line'>1345</span> description:'</span><span class="NAME">HTML</span><span class="STRN">',
<span class='line'>1346</span> type:'</span><span class="STRN">',
<span class='line'>1347</span> data:['</span><span class="STRN">','</span><span class="STRN">']
<span class='line'>1348</span> //選用 optional:
<span class='line'>1349</span> htm:'</span><span class="NAME">HTML</span><span class="STRN">' / function(obj){return '</span><span class="NAME">HTML</span><span class="STRN">';},
<span class='line'>1350</span> //尚未用到︰
<span class='line'>1351</span> link:'</span><span class="STRN">',
<span class='line'>1352</span> };
<span class='line'>1353</span> */
<span class='line'>1354</span> add:function(d,force){
<span class='line'>1355</span> if(!d||typeof d!='</span><span class="NAME">object</span><span class="STRN">')return this;
<span class='line'>1356</span> var _t=this,o=_t.supportKind(d.type);
<span class='line'>1357</span> if(!o){_t.searchPoint(d);return this;}
<span class='line'>1358</span>
<span class='line'>1359</span> //if(!(d.type in _t))_t[d.type]={};
<span class='line'>1360</span> var _S=_t[d.type],_m=this.map,a;
<span class='line'>1361</span> //if(typeof _S!='</span><span class="NAME">object</span><span class="STRN">')sl('</span><span class="NAME">add</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+d.type+'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'+(typeof _S));
<span class='line'>1362</span> if((d.name in _S)&&!force)return this; // 已存在
<span class='line'>1363</span>
<span class='line'>1364</span> o=_t.kinds[d.type];
<span class='line'>1365</span> if(d.type=='</span><span class="NAME">marker</span><span class="STRN">'){
<span class='line'>1366</span> o=new o(new GLatLng(d.data[0],d.data[1]),_t.getMarkerO(d));
<span class='line'>1367</span> //if(d.zIndexP)o._zIndexProcess=o._zIndexProcess,o.zIndexProcess=d.zIndexP; // ** 可以利用 zIndexP 來在 infowindow is opened 時設定 z-index.. 沒用 @ 2008/6/30 19:43:43
<span class='line'>1368</span> }else a={points:d.data[0],levels:d.data[1],numLevels:4,zoomFactor:16},
<span class='line'>1369</span> o=new o.fromEncoded(d.type=='</span><span class="NAME">polyline</span><span class="STRN">'?a:{polylines:[a],fill:true,outline:true});//geodesic:true Geodesic means '</span><span class="NAME">along</span><span class="WHIT"> </span><span class="NAME">great</span><span class="WHIT"> </span><span class="NAME">circle</span><span class="STRN">'
<span class='line'>1370</span>
<span class='line'>1371</span> _t._add(o,d);
<span class='line'>1372</span>
<span class='line'>1373</span> return this;
<span class='line'>1374</span> },
<span class='line'>1375</span> searchPoint:function(adr,name,description){
<span class='line'>1376</span> var _f=arguments.callee,_t=this,type='</span><span class="NAME">marker</span><span class="STRN">',_M=_t[type],_m=_t.map,latlng,d;
<span class='line'>1377</span> if(typeof adr=='</span><span class="NAME">object</span><span class="STRN">')d=adr,adr=adr.type;else d={type:adr,show:_f.show}; // 預設 searchPoint.show
<span class='line'>1378</span> if(!d.name)d.name=name||adr;
<span class='line'>1379</span> if(typeof d.description=='</span><span class="NAME">undefined</span><span class="STRN">')
<span class='line'>1380</span> if(description)d.description=description;
<span class='line'>1381</span> else if(d.name!=adr)d.description=adr;
<span class='line'>1382</span> if(!d.type)return;
<span class='line'>1383</span> if(isNaN(d.retry)&&!_t.geocoder.getCache())d.retry=2; // 找不到時重試次數
<span class='line'>1384</span>
<span class='line'>1385</span> try{
<span class='line'>1386</span> if(adr in _M)
<span class='line'>1387</span> //sl('</span><span class="NAME">We</span><span class="WHIT"> </span><span class="NAME">already</span><span class="WHIT"> </span><span class="NAME">have</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+adr+'</span><span class="PUNC">]</span><span class="STRN">'),
<span class='line'>1388</span> _t.show(_M[adr],type);
<span class='line'>1389</span> else _t.getLatLng(adr+='</span><span class="STRN">',function(point){
<span class='line'>1390</span> if(!point){
<span class='line'>1391</span> if(d.retry){
<span class='line'>1392</span> //sl('</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="NAME">once</span><span class="WHIT"> </span><span class="NAME">more</span><span class="PUNC">(</span><span class="STRN">'+d.retry+'</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+adr+'</span><span class="PUNC">]</span><span class="STRN">');
<span class='line'>1393</span> d.retry--,_f.call(_t,d);return false;
<span class='line'>1394</span> }else{
<span class='line'>1395</span> //sl('</span><span class="NAME">searchPoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">not</span><span class="WHIT"> </span><span class="NAME">found</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+_t.notFound);
<span class='line'>1396</span> return _t.notFound(adr,d);
<span class='line'>1397</span> }
<span class='line'>1398</span> }else{
<span class='line'>1399</span> if(adr in _M)return; // 可能經過太久才被 load?
<span class='line'>1400</span>
<span class='line'>1401</span> // ** 注意:這邊沒設 _M[adr]=_M[point.toUrlValue(_t.precision)]
<span class='line'>1402</span> var p=new GMarker(latlng=point,_t.getMarkerO(d));
<span class='line'>1403</span> if(!d.name)d.name=p+'</span><span class="STRN">';
<span class='line'>1404</span> //sl('</span><span class="NAME">found</span><span class="WHIT"> </span><span class="STRN">'+point+'</span><span class="WHIT"> </span><span class="STRN">'+d.name+'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+p.getIcon().iconSize);
<span class='line'>1405</span> //point='</span><span class="NAME">loc</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+point;
<span class='line'>1406</span> if(typeof d.description=='</span><span class="NAME">undefined</span><span class="STRN">')d.description=point;
<span class='line'>1407</span> else if(d.description==adr)d.description+='</span><span class="PUNC">&lt;</span><span class="NAME">br</span><span class="PUNC">/</span><span class="PUNC">></span><span class="STRN">'+point;
<span class='line'>1408</span> //_M=_M[adr];
<span class='line'>1409</span> if(!('</span><span class="NAME">address</span><span class="STRN">' in p))p.address=adr;else throw '</span><span class="NAME">GMarker.address</span><span class="WHIT"> </span><span class="NAME">was</span><span class="WHIT"> </span><span class="NAME">used</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+p.address+'</span><span class="PUNC">]</span><span class="PUNC">!</span><span class="STRN">';
<span class='line'>1410</span> //sl('</span><span class="NAME">Last</span><span class="WHIT"> </span><span class="NAME">add</span><span class="WHIT"> </span><span class="STRN">'+adr+'</span><span class="PUNC">.</span><span class="PUNC">.</span><span class="STRN">');
<span class='line'>1411</span> _t._add(p,d,type);
<span class='line'>1412</span> }
<span class='line'>1413</span> },d);
<span class='line'>1414</span> }catch(e){sl('</span><span class="NAME">searchPoint</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+adr+'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'+_M+'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+e.message);}//throw e;
<span class='line'>1415</span> return latlng;
<span class='line'>1416</span> },
<span class='line'>1417</span> // private: 註冊 o 成為內容 d={},並設定 click 等 event
<span class='line'>1418</span> _add:function(o,d,type){
<span class='line'>1419</span> if(!o)return;
<span class='line'>1420</span> if(!d)d=o;
<span class='line'>1421</span> if(!type)type=d.type;
<span class='line'>1422</span> var _t=this,_S=_t[type],_m=this.map;
<span class='line'>1423</span>
<span class='line'>1424</span> //if(d.name)_S[d.name]=o; // 或許已經設定過了,這邊就需要跳過。
<span class='line'>1425</span> if(((d.name||d)+'</span><span class="STRN">') in _S)
<span class='line'>1426</span> sl('</span><span class="NAME">_add</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Warning</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Type</span><span class="WHIT"> </span><span class="STRN">'+type+'</span><span class="WHIT"> </span><span class="TOKN"></span><span class="TOKN"></span><span class="TOKN"></span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+(d.name||d)+'</span><span class="PUNC">]</span><span class="STRN">'+(_S[d.name||d].getLatLng?'</span><span class="WHIT"> </span><span class="STRN">'+_S[d.name||d].getLatLng():'</span><span class="STRN">')+('</span><span class="NAME">address</span><span class="STRN">' in _S[d.name||d]?'</span><span class="WHIT"> </span><span class="STRN">'+_S[d.name||d].address:'</span><span class="STRN">')+'</span><span class="PUNC">!</span><span class="STRN">'
<span class='line'>1427</span> //+'</span><span class="PUNC">&lt;</span><span class="NAME">br</span><span class="PUNC">/</span><span class="PUNC">></span><span class="NAME">_add</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="TOKN"></span><span class="TOKN"></span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+(o.name||d.name||d)+'</span><span class="PUNC">]</span><span class="STRN">'+(o.getLatLng?'</span><span class="WHIT"> </span><span class="STRN">'+o.getLatLng():'</span><span class="STRN">')+(o.address?'</span><span class="WHIT"> </span><span class="STRN">'+o.address:'</span><span class="STRN">')+'</span><span class="WHIT"> </span><span class="TOKN"></span><span class="TOKN"></span><span class="TOKN"></span><span class="STRN">'
<span class='line'>1428</span> );
<span class='line'>1429</span> _S[d.name||d]=o; // 必設!!
<span class='line'>1430</span>
<span class='line'>1431</span> if(_m)_m.addOverlay(o);//_t._addOverlay(o);//
<span class='line'>1432</span> //if(o.getIcon)sl('</span><span class="NAME">_add</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">show</span><span class="WHIT"> </span><span class="STRN">'+o.getIcon().iconSize+'</span><span class="WHIT"> </span><span class="STRN">'+o.getIcon().image);
<span class='line'>1433</span> o.name=d.name,o.dscr=d.description; // GMarker 中這兩個本來就有被用,偵測也只會發現已使用。
<span class='line'>1434</span> // another way to add tooltip: GControlPosition
<span class='line'>1435</span> if(!('</span><span class="NAME">sHtm</span><span class="STRN">' in o)){
<span class='line'>1436</span> if('</span><span class="NAME">htm</span><span class="STRN">' in d)o.sHtm=typeof d.htm=='</span><span class="KEYW">function</span><span class="STRN">'?d.htm.call(d,o,type):d.htm;
<span class='line'>1437</span> else o.sHtm=(d.name?'</span><span class="PUNC">&lt;</span><span class="NAME">em</span><span class="PUNC">></span><span class="STRN">'+d.name+'</span><span class="PUNC">&lt;</span><span class="REGX">/em>'+(d.description?'&lt;br/</span><span class="PUNC">></span><span class="STRN">':'</span><span class="STRN">'):'</span><span class="STRN">')+(d.description||'</span><span class="STRN">');
<span class='line'>1438</span> }else throw '</span><span class="PUNC">[</span><span class="STRN">'+type+'</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">sHtm</span><span class="WHIT"> </span><span class="NAME">was</span><span class="WHIT"> </span><span class="NAME">used</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+o.sHtm+'</span><span class="PUNC">]</span><span class="PUNC">!</span><span class="STRN">';
<span class='line'>1439</span> if(!('</span><span class="NAME">sHtmF</span><span class="STRN">' in o)){
<span class='line'>1440</span> if('</span><span class="NAME">htmF</span><span class="STRN">' in d)
<span class='line'>1441</span> o.sHtmF=typeof d.htmF=='</span><span class="KEYW">function</span><span class="STRN">'?d.htmF.call(d,o,type):d.htmF;
<span class='line'>1442</span> }else throw '</span><span class="PUNC">[</span><span class="STRN">'+type+'</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">sHtmF</span><span class="WHIT"> </span><span class="NAME">was</span><span class="WHIT"> </span><span class="NAME">used</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+o.sHtm+'</span><span class="PUNC">]</span><span class="PUNC">!</span><span class="STRN">';
<span class='line'>1443</span> // openInfoWindowTabs: http://www.geocodezip.com/mapXmlTabsPlus.asp
<span class='line'>1444</span> GEvent.addListener(o,"click",function(e){
<span class='line'>1445</span> _t.showWindow(o);
<span class='line'>1446</span> _t.runOnClick(o,type,e&&e.target||window.event&&window.event.srcElement);
<span class='line'>1447</span> });
<span class='line'>1448</span> if(d.show)_t.show(o,type);
<span class='line'>1449</span> _t.runAfterAdd(o,type,d,d.name||d);
<span class='line'>1450</span> },
<span class='line'>1451</span> _addOverlay:function(o){
<span class='line'>1452</span> var _t=this,_m=_t.map;
<span class='line'>1453</span> if(!_t._aa)_t._aa=[];
<span class='line'>1454</span> if(o){_t._aa.push(o);return;}
<span class='line'>1455</span> var i;
<span class='line'>1456</span> while(i=_t._aa.shift())
<span class='line'>1457</span> _m.addOverlay(i);
<span class='line'>1458</span> },
<span class='line'>1459</span>
<span class='line'>1460</span>
<span class='line'>1461</span> // icon setup
<span class='line'>1462</span> defaultIconIndex:0,
<span class='line'>1463</span> iconA:[],
<span class='line'>1464</span> iconO:{},
<span class='line'>1465</span> icon:function(index){
<span class='line'>1466</span> var _t=this;
<span class='line'>1467</span> if(index instanceof Array){
<span class='line'>1468</span> // 設定 icon
<span class='line'>1469</span> _t.iconA=[];
<span class='line'>1470</span> for(var a,i=0,p,u;i&lt;index.length;i++)
<span class='line'>1471</span> if(u=index[i]){
<span class='line'>1472</span> if(typeof u=='</span><span class="NAME">string</span><span class="STRN">')u={image:u};
<span class='line'>1473</span> if(u instanceof Object){
<span class='line'>1474</span> _t.iconA.push(a=new GIcon(u.icon||_t.iconA[_t.defaultIconIndex]||G_DEFAULT_ICON));
<span class='line'>1475</span> //a=new GIcon(u.icon||_t.iconA[_t.defaultIconIndex]||G_DEFAULT_ICON);
<span class='line'>1476</span> for(p in _t.iconO) // default first
<span class='line'>1477</span> //sl('</span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="PUNC">[</span><span class="STRN">'+(_t.iconA.length-1)+'</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="STRN">'+p+'</span><span class="PUNC">=</span><span class="STRN">'+_t.iconO[p]),
<span class='line'>1478</span> a[p]=_t.iconO[p];
<span class='line'>1479</span> if('</span><span class="NAME">temp</span><span class="STRN">' in u){ // template 2
<span class='line'>1480</span> for(p in u.temp)
<span class='line'>1481</span> //sl('</span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">template</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="PUNC">[</span><span class="STRN">'+(_t.iconA.length-1)+'</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="STRN">'+p+'</span><span class="PUNC">=</span><span class="STRN">'+u.temp[p]),
<span class='line'>1482</span> a[p]=u.temp[p];
<span class='line'>1483</span> delete u.temp;
<span class='line'>1484</span> }
<span class='line'>1485</span> for(p in u) // user set last
<span class='line'>1486</span> //sl('</span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">specified</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="PUNC">[</span><span class="STRN">'+(_t.iconA.length-1)+'</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="STRN">'+p+'</span><span class="PUNC">=</span><span class="STRN">'+u[p]),
<span class='line'>1487</span> a[p]=u[p];
<span class='line'>1488</span> //_t.iconA.push(new GIcon(a));
<span class='line'>1489</span> }else _t.iconA.push(u);
<span class='line'>1490</span> }
<span class='line'>1491</span> return _t.iconA.length;
<span class='line'>1492</span> }
<span class='line'>1493</span>
<span class='line'>1494</span> if(index instanceof Object){
<span class='line'>1495</span> //sl('</span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="WHIT"> </span><span class="NAME">option</span><span class="STRN">');
<span class='line'>1496</span> for(i in index)
<span class='line'>1497</span> //sl('</span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+i+'</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="STRN">'+index[i]+'</span><span class="PUNC">]</span><span class="STRN">'),
<span class='line'>1498</span> _t.iconO[i]=index[i];
<span class='line'>1499</span> return;
<span class='line'>1500</span> }
<span class='line'>1501</span>
<span class='line'>1502</span> // return icon[index]
<span class='line'>1503</span> if(isNaN(index)||index&lt;0||index>=_t.iconA.length)index=_t.defaultIconIndex;
<span class='line'>1504</span> //sl('</span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="PUNC">[</span><span class="STRN">'+index+'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="STRN">'+(_t.iconA[index]?_t.iconA[index].iconSize+'</span><span class="WHIT"> </span><span class="STRN">'+_t.iconA[index].image:'</span><span class="NAME">G_DEFAULT_ICON</span><span class="STRN">'));
<span class='line'>1505</span> return _t.iconA[index]||G_DEFAULT_ICON;
<span class='line'>1506</span> },
<span class='line'>1507</span>
<span class='line'>1508</span> dMarkerO:{}, // default marker option
<span class='line'>1509</span> getMarkerO:function(mo,setMO){ // setMO: set default, 1: add, 2:reset
<span class='line'>1510</span> var _t=this,i,a={icon:1,title:1,zIndexProcess:1,draggable:1}; // class GMarkerOptions
<span class='line'>1511</span> _t.dMarkerO.icon=_t.icon();
<span class='line'>1512</span> if(setMO){
<span class='line'>1513</span> if(setMO==2)_t.dMarkerO={};
<span class='line'>1514</span> setMO=_t.dMarkerO;
<span class='line'>1515</span> }else{
<span class='line'>1516</span> // 複製一份
<span class='line'>1517</span> setMO={};
<span class='line'>1518</span> for(i in _t.dMarkerO)
<span class='line'>1519</span> //sl('</span><span class="NAME">getMarkerO</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">from</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+i+'</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="STRN">'+_t.dMarkerO[i]+'</span><span class="PUNC">]</span><span class="STRN">'),
<span class='line'>1520</span> setMO[i]=_t.dMarkerO[i];
<span class='line'>1521</span> }
<span class='line'>1522</span> if(mo instanceof Object)
<span class='line'>1523</span> for(i in a)
<span class='line'>1524</span> if(a[i]&&typeof mo[i]!='</span><span class="NAME">undefined</span><span class="STRN">')
<span class='line'>1525</span> //sl('</span><span class="NAME">getMarkerO</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+i+'</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="STRN">'+mo[i]+'</span><span class="PUNC">]</span><span class="STRN">'),
<span class='line'>1526</span> setMO[i]=mo[i];
<span class='line'>1527</span> //sl('</span><span class="NAME">getMarkerO</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+setMO.icon.iconSize+'</span><span class="WHIT"> </span><span class="STRN">'+setMO.icon.image);
<span class='line'>1528</span> return setMO;
<span class='line'>1529</span> },
<span class='line'>1530</span>
<span class='line'>1531</span> /* 增加自己控制的 marker會自動顯現但不會列入管控得自己設定。
<span class='line'>1532</span> usage:
<span class='line'>1533</span> mapO.addMarker(dLoc.tw,{draggable:true});
<span class='line'>1534</span> */
<span class='line'>1535</span> addMarker:function(loc,opt){
<span class='line'>1536</span> var _t=this,_m=_t.map,m;
<span class='line'>1537</span> if(_m){
<span class='line'>1538</span> if(loc instanceof Array)loc=new GLatLng(loc[0],loc[1]);
<span class='line'>1539</span> m=new GMarker(loc,_t.getMarkerO(opt));
<span class='line'>1540</span> //sl('</span><span class="NAME">addMarker</span><span class="WHIT"> </span><span class="NAME">icon</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+_t.getMarkerO(opt).icon.iconSize+'</span><span class="WHIT"> </span><span class="STRN">'+_t.getMarkerO(opt).icon.image);
<span class='line'>1541</span> //sl('</span><span class="NAME">addMarker</span><span class="WHIT"> </span><span class="NAME">iconSize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'+_t.getMarkerO(opt).iconSize);
<span class='line'>1542</span> _m.addOverlay(m);
<span class='line'>1543</span> }
<span class='line'>1544</span> return m;
<span class='line'>1545</span> },
<span class='line'>1546</span>
<span class='line'>1547</span>
<span class='line'>1548</span> // f={p:position, m:method(pan/panBy/set), z:zoom}
<span class='line'>1549</span> setCenter:function(f){
<span class='line'>1550</span> var _m=this.map;
<span class='line'>1551</span> if(f instanceof GLatLng||!(f instanceof Object))f={p:f};
<span class='line'>1552</span>
<span class='line'>1553</span> //sl('</span><span class="NAME">setCenter</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">setZoom</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+(f.z||null)+'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="TOKN">@</span><span class="WHIT"> </span><span class="STRN">'+f.p+'</span><span class="WHIT"> </span><span class="NAME">by</span><span class="WHIT"> </span><span class="NAME">method</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'+(f.m||'</span><span class="NAME">setCenter</span><span class="STRN">')+'</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="STRN">');
<span class='line'>1554</span> if(!isNaN(f.z))_m.setZoom(f.z);
<span class='line'>1555</span> if(f.p){
<span class='line'>1556</span> if(f.p instanceof Array)f.p=new GLatLng(f.p[0],f.p[1]);
<span class='line'>1557</span> if(f.m=='</span><span class="NAME">pan</span><span class="STRN">')_m.panTo(f.p);
<span class='line'>1558</span> else if(f.m=='</span><span class="NAME">panBy</span><span class="STRN">')_m.panBy(f.p);
<span class='line'>1559</span> else _m.setCenter(f.p);
<span class='line'>1560</span> }
<span class='line'>1561</span>
<span class='line'>1562</span> return _m.getCenter();
<span class='line'>1563</span> },
<span class='line'>1564</span>
<span class='line'>1565</span> // zoom above 19 You can set zoom up to 30 by using setCenter() not by setZoom() or zoomIn() firefox: 45.1238,-123.1138 http://esa.ilmari.googlepages.com/highres.htm
<span class='line'>1566</span> /*
<span class='line'>1567</span> eval('</span><span class="NAME">err_noImage</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">(</span><span class="NUMB">10121</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="STRN">',mapO.map);
<span class='line'>1568</span> sl(err_noImage);
<span class='line'>1569</span> */
<span class='line'>1570</span> zoom:function(z){
<span class='line'>1571</span> var _t=this,_m=_t.map,m;
<span class='line'>1572</span> if(typeof z=='</span><span class="NAME">string</span><span class="STRN">'&&(m=z.match(/^[+-]/)))z=_m.getZoom()+(m[0]=='</span><span class="PUNC">+</span><span class="STRN">'?z:-z);
<span class='line'>1573</span> if(z)_m.setZoom(z);//try{_m.setCenter(_m.getCenter(),z);}catch(e){} // 中文中, enableContinuousZoom()? 這麼搞會出錯
<span class='line'>1574</span> return _m.getZoom();
<span class='line'>1575</span> },
<span class='line'>1576</span> // show, or focus. f={noCenter:false, redraw: false}
<span class='line'>1577</span> show:function(name,type,f){
<span class='line'>1578</span> var _t=this,_S=_t[type],_m=_t.map,inC; // inC: in control
<span class='line'>1579</span> if(typeof name=='</span><span class="NAME">string</span><span class="STRN">')
<span class='line'>1580</span> if(name in _S)_S=_S[name],inC=1;
<span class='line'>1581</span> else _S=0;
<span class='line'>1582</span> else _S=name;
<span class='line'>1583</span> if(typeof _S!='</span><span class="NAME">object</span><span class="STRN">'||!_S)return;
<span class='line'>1584</span>
<span class='line'>1585</span> if(_S.isHidden&&_S.isHidden())_S.show();
<span class='line'>1586</span> if(typeof f!='</span><span class="NAME">object</span><span class="STRN">')f={noCenter:f}; // default: don'</span><span class="NAME">t</span><span class="WHIT"> </span><span class="NAME">set</span><span class="WHIT"> </span><span class="NAME">to</span><span class="WHIT"> </span><span class="NAME">center</span><span class="WHIT">
<span class='line'>1587</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">f.noCenter</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1588</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">_t.getPoint</span><span class="PUNC">(</span><span class="NAME">_S</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1589</span> </span><span class="WHIT"> </span><span class="COMM">//sl('show: center= '+p);</span><span class="WHIT">
<span class='line'>1590</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_m</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1591</span> </span><span class="WHIT"> </span><span class="NAME">_m.setCenter</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1592</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_m.getZoom</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">&lt;</span><span class="NUMB">9</span><span class="PUNC">)</span><span class="NAME">_m.setZoom</span><span class="PUNC">(</span><span class="NAME">_t.defaultZoom</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1593</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">inC</span><span class="PUNC">)</span><span class="NAME">_t.showWindow</span><span class="PUNC">(</span><span class="NAME">_S</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 未管控就 showWindow 會有奇妙的結果。</span><span class="WHIT">
<span class='line'>1594</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1595</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1596</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f.redraw</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">_S.redraw</span><span class="PUNC">)</span><span class="NAME">_S.redraw</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// Front/back order of markers can be messed simply by moving them in south-north direction. (v1) http://koti.mbnet.fi/ojalesa/exam/anim_v2.html</span><span class="WHIT">
<span class='line'>1597</span>
<span class='line'>1598</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1599</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1600</span>
<span class='line'>1601</span> </span><span class="COMM">// show HTML window (obj, point) o.sHtmF=show HTML flag: {maxContent:'', ..}: see class GInfoWindowOptions</span><span class="WHIT">
<span class='line'>1602</span> </span><span class="NAME">showWindow</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1603</span> </span><span class="WHIT"> </span><span class="COMM">//sl('showWindow: '+(p||o.openInfoWindowHtml));</span><span class="WHIT">
<span class='line'>1604</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.openInfoWindowHtml</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1605</span> </span><span class="WHIT"> </span><span class="NAME">o.openInfoWindowHtml</span><span class="PUNC">(</span><span class="NAME">o.sHtm</span><span class="PUNC">,</span><span class="NAME">o.sHtmF</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// enableMaximize()</span><span class="WHIT">
<span class='line'>1606</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">this.map.openInfoWindowHtml</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">||</span><span class="NAME">this.getPoint</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o.sHtm</span><span class="PUNC">,</span><span class="NAME">o.sHtmF</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1607</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1608</span>
<span class='line'>1609</span> </span><span class="COMM">// get the GLatLng of the object</span><span class="WHIT">
<span class='line'>1610</span> </span><span class="NAME">getPoint</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1611</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="PUNC">)</span><span class="NAME">type</span><span class="PUNC">=</span><span class="NAME">this.getKind</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1612</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getPoint: ['+type+']'+o.name);</span><span class="WHIT">
<span class='line'>1613</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">==</span><span class="STRN">'marker'</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.getLatLng</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o.getLatLng</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1614</span>
<span class='line'>1615</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.getBounds</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1616</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o.getBounds</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">getCenter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1617</span>
<span class='line'>1618</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.getCenter</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1619</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o.getCenter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1620</span>
<span class='line'>1621</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.getVertexCount</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1622</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o.getVertex</span><span class="PUNC">(</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">o.getVertexCount</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1623</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1624</span>
<span class='line'>1625</span> </span><span class="NAME">getZoom</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1626</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="PUNC">)</span><span class="NAME">type</span><span class="PUNC">=</span><span class="NAME">this.getKind</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1627</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getPoint: ['+type+']'+o.name);</span><span class="WHIT">
<span class='line'>1628</span>
<span class='line'>1629</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o.getBounds</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1630</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.getBoundsZoomLevel</span><span class="PUNC">(</span><span class="NAME">o.getBounds</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 得到適當的 zoom</span><span class="WHIT">
<span class='line'>1631</span>
<span class='line'>1632</span> </span><span class="WHIT"> </span><span class="COMM">//if(type=='marker')return _t.defaultZoom;</span><span class="WHIT">
<span class='line'>1633</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t.defaultZoom</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1634</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1635</span>
<span class='line'>1636</span>
<span class='line'>1637</span> </span><span class="NAME">initMap</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="NAME">latlng</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// container, center, other initial setting flags</span><span class="WHIT">
<span class='line'>1638</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1639</span> </span><span class="WHIT"> </span><span class="COMM">// 檢查當前瀏覽器是否支持地圖 API 庫</span><span class="WHIT">
<span class='line'>1640</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">GBrowserIsCompatible</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1641</span> </span><span class="WHIT"> </span><span class="COMM">// 指定GMap使用的圖層 @ id</span><span class="WHIT">
<span class='line'>1642</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">id</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1643</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">id</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1644</span> </span><span class="WHIT"> </span><span class="NAME">_t.canvas</span><span class="PUNC">=</span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// container object</span><span class="WHIT">
<span class='line'>1645</span>
<span class='line'>1646</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">f</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1647</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">f.size</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1648</span> </span><span class="WHIT"> </span><span class="NAME">f.size</span><span class="PUNC">=</span><span class="NAME">f.x</span><span class="PUNC">&&</span><span class="NAME">f.y</span><span class="PUNC">?</span><span class="PUNC">[</span><span class="NAME">f.x</span><span class="PUNC">,</span><span class="NAME">f.y</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="NUMB">640</span><span class="PUNC">,</span><span class="NUMB">320</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1649</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f.size</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="NAME">f.size</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GSize</span><span class="PUNC">(</span><span class="NAME">f.size</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">f.size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1650</span>
<span class='line'>1651</span> </span><span class="WHIT"> </span><span class="NAME">_m</span><span class="PUNC">=</span><span class="NAME">_t.map</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GMap2</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//=new google.maps.Map2();</span><span class="WHIT">
<span class='line'>1652</span> </span><span class="WHIT"> </span><span class="COMM">// 設定中心點座標</span><span class="WHIT">
<span class='line'>1653</span> </span><span class="WHIT"> </span><span class="NAME">_m.setCenter</span><span class="PUNC">(</span><span class="NAME">latlng</span><span class="PUNC">||</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLatLng</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NUMB">7</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// default center.</span><span class="WHIT">
<span class='line'>1654</span> </span><span class="WHIT"> </span><span class="COMM">//_m.setMapType(G_HYBRID_MAP);</span><span class="WHIT">
<span class='line'>1655</span> </span><span class="WHIT"> </span><span class="NAME">_m.addMapType</span><span class="PUNC">(</span><span class="NAME">G_PHYSICAL_MAP</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 地形圖</span><span class="WHIT">
<span class='line'>1656</span> </span><span class="WHIT"> </span><span class="NAME">_m.addMapType</span><span class="PUNC">(</span><span class="NAME">G_SATELLITE_3D_MAP</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// with the Google Earth Browser Plug-in</span><span class="WHIT">
<span class='line'>1657</span>
<span class='line'>1658</span> </span><span class="WHIT"> </span><span class="COMM">// 控制元件 客制化: http://julian.norway.idv.tw/index.php/archives/322</span><span class="WHIT">
<span class='line'>1659</span> </span><span class="WHIT"> </span><span class="COMM">//_m.addControl((new GHierarchicalMapTypeControl()).addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", true));</span><span class="WHIT">
<span class='line'>1660</span> </span><span class="WHIT"> </span><span class="COMM">//_m.removeMapType(G_HYBRID_MAP);</span><span class="WHIT">
<span class='line'>1661</span> </span><span class="WHIT"> </span><span class="NAME">_m.addControl</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_t.overviewMap</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GOverviewMapControl</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GSize</span><span class="PUNC">(</span><span class="NAME">_m.getSize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">width</span><span class="PUNC">/</span><span class="NUMB">2.5</span><span class="PUNC">,</span><span class="NAME">_m.getSize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">height</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 可折疊的縮小圖</span><span class="WHIT">
<span class='line'>1662</span> </span><span class="WHIT"> </span><span class="NAME">a.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// show(), hide().</span><span class="WHIT">
<span class='line'>1663</span> </span><span class="WHIT"> </span><span class="COMM">//a.getOverviewMap().addControl(new GMenuMapTypeControl(1)); must use setTimeout: getOverviewMap() is not available until after the module has loaded.</span><span class="WHIT">
<span class='line'>1664</span> </span><span class="WHIT"> </span><span class="NAME">_m.addControl</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GLargeMapControl</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 加入地圖縮放工具</span><span class="WHIT">
<span class='line'>1665</span> </span><span class="WHIT"> </span><span class="NAME">_m.addControl</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GMenuMapTypeControl</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//GMapTypeControl(1) // 切換地圖型態的按鈕</span><span class="WHIT">
<span class='line'>1666</span> </span><span class="WHIT"> </span><span class="NAME">_m.addControl</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GScaleControl</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 地圖比例尺</span><span class="WHIT">
<span class='line'>1667</span> </span><span class="WHIT"> </span><span class="NAME">_m.enableScrollWheelZoom</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1668</span> </span><span class="WHIT"> </span><span class="NAME">_m.enableContinuousZoom</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 平滑放大</span><span class="WHIT">
<span class='line'>1669</span>
<span class='line'>1670</span> </span><span class="WHIT"> </span><span class="NAME">GEvent.addListener</span><span class="PUNC">(</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="STRN">'mouseover'</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_m.showControls</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1671</span> </span><span class="WHIT"> </span><span class="NAME">GEvent.addListener</span><span class="PUNC">(</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="STRN">'mouseout'</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_m.hideControls</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1672</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1673</span> </span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'&lt;em>抱歉,您的瀏覽器不支援 Google Maps&lt;/em>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1674</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1675</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1676</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1677</span>
<span class='line'>1678</span>
<span class='line'>1679</span>
<span class='line'>1680</span> </span><span class="COMM">/* 移除所有管控項
<span class='line'>1681</span> c.f., this.map.clearOverlays()
<span class='line'>1682</span> */</span><span class="WHIT">
<span class='line'>1683</span> </span><span class="NAME">removeAll</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1684</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1685</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="PUNC">)</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_t.kinds</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1686</span> </span><span class="WHIT"> </span><span class="NAME">arguments.callee.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1687</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1688</span> </span><span class="WHIT"> </span><span class="COMM">//sl('removeAll: ('+(typeof type)+') ['+type+'], '+(typeof _t[type]));</span><span class="WHIT">
<span class='line'>1689</span> </span><span class="WHIT"> </span><span class="COMM">//o=[];for(i in _t[type])o.push(i);for(i=0;i&lt;o.length;i++)_t.remove(o[i],type);</span><span class="WHIT">
<span class='line'>1690</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">_t.remove</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1691</span> </span><span class="WHIT"> </span><span class="COMM">//_t[type]={};</span><span class="WHIT">
<span class='line'>1692</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1693</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1694</span>
<span class='line'>1695</span> </span><span class="NAME">remove</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1696</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_S</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1697</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_S</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1698</span> </span><span class="WHIT"> </span><span class="COMM">//sl('remove '+type+' ['+n+']: '+(_S[n].name||_S[n].address||_S[n].dscr));</span><span class="WHIT">
<span class='line'>1699</span> </span><span class="WHIT"> </span><span class="NAME">this.map.removeOverlay</span><span class="PUNC">(</span><span class="NAME">_S</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1700</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">_S</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1701</span> </span><span class="WHIT"> </span><span class="NAME">this.runAfterRemove</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">,</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1702</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1703</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1704</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1705</span>
<span class='line'>1706</span> </span><span class="COMM">// http://econym.googlepages.com/example_context.htm</span><span class="WHIT">
<span class='line'>1707</span> </span><span class="NAME">setContextMenu</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1708</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_m</span><span class="PUNC">=</span><span class="NAME">_t.map</span><span class="PUNC">,</span><span class="NAME">h</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1709</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_m</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1710</span>
<span class='line'>1711</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1712</span> </span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1713</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1714</span> </span><span class="WHIT"> </span><span class="NAME">o.className</span><span class="PUNC">=</span><span class="STRN">'gMap_contextMenu'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1715</span> </span><span class="WHIT"> </span><span class="NAME">o.innerHTML</span><span class="PUNC">=</span><span class="NAME">h</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1716</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1717</span>
<span class='line'>1718</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.contextMenu</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1719</span> </span><span class="WHIT"> </span><span class="NAME">_t.contextMenu.replaceNode</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1720</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_m.getContainer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">appendChild</span><span class="PUNC">(</span><span class="NAME">_t.contextMenu</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1721</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">GEvent.addListener</span><span class="PUNC">(</span><span class="NAME">_m</span><span class="PUNC">,</span><span class="STRN">'singlerightclick'</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1722</span> </span><span class="WHIT"> </span><span class="NAME">_t.clickLatLng</span><span class="PUNC">=</span><span class="NAME">_m.fromContainerPixelToLatLng</span><span class="PUNC">(</span><span class="NAME">_t.clickPoint</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1723</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">=</span><span class="NAME">p.x</span><span class="PUNC">,</span><span class="NAME">y</span><span class="PUNC">=</span><span class="NAME">p.y</span><span class="PUNC">,</span><span class="NAME">w</span><span class="PUNC">=</span><span class="NAME">_m.getSize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">width</span><span class="PUNC">-</span><span class="NAME">o.offsetWidth</span><span class="PUNC">,</span><span class="NAME">h</span><span class="PUNC">=</span><span class="NAME">_m.getSize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">height</span><span class="PUNC">-</span><span class="NAME">o.offsetHeight</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1724</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">></span><span class="NAME">w</span><span class="PUNC">&&</span><span class="NAME">w</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">)</span><span class="NAME">x</span><span class="PUNC">=</span><span class="NAME">w</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1725</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">y</span><span class="PUNC">></span><span class="NAME">h</span><span class="PUNC">&&</span><span class="NAME">h</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">)</span><span class="NAME">y</span><span class="PUNC">=</span><span class="NAME">h</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1726</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GControlPosition</span><span class="PUNC">(</span><span class="NAME">G_ANCHOR_TOP_LEFT</span><span class="PUNC">,</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GSize</span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="NAME">y</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">apply</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1727</span> </span><span class="WHIT"> </span><span class="NAME">_t.showContextMenu</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1728</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1729</span>
<span class='line'>1730</span> </span><span class="WHIT"> </span><span class="NAME">_t.showContextMenu</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1731</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1732</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1733</span> </span><span class="NAME">showContextMenu</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1734</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">this.contextMenu</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1735</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="NAME">o.style.visibility</span><span class="PUNC">=</span><span class="NAME">v</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">?</span><span class="STRN">'visible'</span><span class="PUNC">:</span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1736</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1737</span>
<span class='line'>1738</span> </span><span class="COMM">// get overlay</span><span class="WHIT">
<span class='line'>1739</span> </span><span class="NAME">getO</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1740</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1741</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">?</span><span class="NAME">name</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">?</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="KEYW">null</span><span class="PUNC">:</span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1742</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1743</span>
<span class='line'>1744</span> </span><span class="COMM">// get name of the type</span><span class="WHIT">
<span class='line'>1745</span> </span><span class="NAME">getOArray</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1746</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1747</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="NAME">a.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1748</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1749</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1750</span>
<span class='line'>1751</span>
<span class='line'>1752</span> </span><span class="COMM">/*
<span class='line'>1753</span> var i,t=[],o;
<span class='line'>1754</span> o=GGeoXml.prototype;//GMap2.prototype
<span class='line'>1755</span> sl('['+(typeof o)+'] '+(o+'').replace(/\n/g,'&lt;br/>')+'&lt;hr/>',1);for(i in o)t.push('['+(typeof o[i])+'] '+i);sl(t.sort().join('&lt;br/>'));
<span class='line'>1756</span>
<span class='line'>1757</span> TODO:
<span class='line'>1758</span> GEvent.addListener(map,"addoverlay",function(overlay){if(overlay.name){}});
<span class='line'>1759</span> */</span><span class="WHIT">
<span class='line'>1760</span> </span><span class="NAME">loadXML</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">URL</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1761</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">x</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">GGeoXml</span><span class="PUNC">(</span><span class="NAME">URL</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1762</span> </span><span class="WHIT"> </span><span class="COMM">// .getDefaultCenter(), .getDefaultBounds() 可能是 null</span><span class="WHIT">
<span class='line'>1763</span> </span><span class="WHIT"> </span><span class="NAME">_t.setCenter</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">p</span><span class="PUNC">:</span><span class="NAME">x.getDefaultCenter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">z</span><span class="PUNC">:</span><span class="NAME">x.getDefaultBounds</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">:</span><span class="STRN">'pan'</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1764</span> </span><span class="WHIT"> </span><span class="NAME">_t.map.addOverlay</span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1765</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t.xml</span><span class="PUNC">[</span><span class="NAME">URL</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1766</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1767</span>
<span class='line'>1768</span> </span><span class="COMM">//resize map</span><span class="WHIT">
<span class='line'>1769</span> </span><span class="NAME">resize</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="NAME">y</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1770</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">this.map.getContainer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1771</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">=</span><span class="NAME">x</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">,</span><span class="NAME">height</span><span class="PUNC">=</span><span class="NAME">y</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1772</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1773</span>
<span class='line'>1774</span> </span><span class="COMM">// 去除商標, Copyright message</span><span class="WHIT">
<span class='line'>1775</span> </span><span class="NAME">removeTM</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1776</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">this.canvas</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1777</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1778</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">a.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'a'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">a.length</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1779</span> </span><span class="WHIT"> </span><span class="COMM">//sl('removeTM: '+UnicodeToHTML(document.getElementById('map_canvas').innerHTML));</span><span class="WHIT">
<span class='line'>1780</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">||</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1781</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1782</span> </span><span class="WHIT"> </span><span class="COMM">// http://www.google.com/intl/en_ALL/help/terms_maps.html</span><span class="WHIT">
<span class='line'>1783</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">href.indexOf</span><span class="PUNC">(</span><span class="STRN">'terms_maps'</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">parentNode.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1784</span> </span><span class="WHIT"> </span><span class="COMM">//sl('removeTM: remove copyright: '+a[i].href);</span><span class="WHIT">
<span class='line'>1785</span> </span><span class="WHIT"> </span><span class="COMM">//sl('removeTM: remove copyright: '+UnicodeToHTML(a[i].parentNode.innerHTML));</span><span class="WHIT">
<span class='line'>1786</span> </span><span class="WHIT"> </span><span class="NAME">removeNode</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">parentNode</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 連這div都刪除會有奇怪現象發生</span><span class="WHIT">
<span class='line'>1787</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1788</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">innerHTML.indexOf</span><span class="PUNC">(</span><span class="STRN">'poweredby.png'</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1789</span> </span><span class="WHIT"> </span><span class="COMM">//sl('removeTM: remove logo: '+UnicodeToHTML(a[i].parentNode.innerHTML));</span><span class="WHIT">
<span class='line'>1790</span> </span><span class="WHIT"> </span><span class="NAME">removeNode</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">parentNode</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1791</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1792</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1793</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1794</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1795</span>
<span class='line'>1796</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// _.prototype=</span><span class="WHIT">
<span class='line'>1797</span>
<span class='line'>1798</span>
<span class='line'>1799</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1800</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// (function(){</span><span class="WHIT">
<span class='line'>1801</span>
<span class='line'>1802</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>1803</span>
<span class='line'>1804</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>1805</span> </span><span class="COMM">/* 2008/9-10/1
<span class='line'>1806</span> 搜尋用代理工具
<span class='line'>1807</span>
<span class='line'>1808</span> usage:
<span class='line'>1809</span> google.load("search","1",{language:"ja_JP",callback:loadSearch});
<span class='line'>1810</span> function loadSearch(){
<span class='line'>1811</span> gSearch=new getSearch(function(r,p){
<span class='line'>1812</span> sl('&lt;a href="'+r.unescapedUrl+'">'+r.title+'&lt;/a>&lt;br/>&lt;div style="margin-left:3em;font-size:.8em;">'+r.content+'&lt;/div>');
<span class='line'>1813</span> });
<span class='line'>1814</span> }
<span class='line'>1815</span>
<span class='line'>1816</span>
<span class='line'>1817</span> TODO:
<span class='line'>1818</span> Yahoo! Search BOSS http://developer.yahoo.com/search/boss/
<span class='line'>1819</span>
<span class='line'>1820</span> LocalSearch:
<span class='line'>1821</span> http://www.google.com/uds/samples/apidocs/static-tiles.html
<span class='line'>1822</span> http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GlocalSearch
<span class='line'>1823</span>
<span class='line'>1824</span> */</span><span class="WHIT">
<span class='line'>1825</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">getSearch</span><span class="PUNC">(</span><span class="NAME">fn</span><span class="PUNC">,</span><span class="NAME">kind</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// deal function, kind: Web/Local</span><span class="WHIT">
<span class='line'>1826</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">kind</span><span class="PUNC">)</span><span class="NAME">kind</span><span class="PUNC">=</span><span class="STRN">'Web'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1827</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_s</span><span class="PUNC">=</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">google</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">?</span><span class="NAME">google.search</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1828</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_s</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NAME">kind</span><span class="PUNC">+</span><span class="STRN">'Search'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1829</span> </span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">=</span><span class="NAME">_t.searcher</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="PUNC">[</span><span class="NAME">kind</span><span class="PUNC">+</span><span class="STRN">'Search'</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1830</span>
<span class='line'>1831</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">kind</span><span class="PUNC">==</span><span class="STRN">'Local'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1832</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Set center: '+'Taiwan');</span><span class="WHIT">
<span class='line'>1833</span> </span><span class="WHIT"> </span><span class="NAME">_s.setCenterPoint</span><span class="PUNC">(</span><span class="STRN">'台灣'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//Taiwan</span><span class="WHIT">
<span class='line'>1834</span> </span><span class="WHIT"> </span><span class="NAME">_s.setResultSetSize</span><span class="PUNC">(</span><span class="NAME">google.search.Search.LARGE_RESULTSET</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1835</span> </span><span class="WHIT"> </span><span class="COMM">//_s.setCenterPoint("93108");</span><span class="WHIT">
<span class='line'>1836</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1837</span> </span><span class="WHIT"> </span><span class="NAME">_s.setNoHtmlGeneration</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1838</span> </span><span class="WHIT"> </span><span class="COMM">//.addSearcher(_s,(new google.search.SearcherOptions()).setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN));</span><span class="WHIT">
<span class='line'>1839</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1840</span>
<span class='line'>1841</span> </span><span class="WHIT"> </span><span class="NAME">_s.setResultSetSize</span><span class="PUNC">(</span><span class="NAME">google.search.Search.LARGE_RESULTSET</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1842</span>
<span class='line'>1843</span> </span><span class="WHIT"> </span><span class="NAME">_s.setSearchCompleteCallback</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">_t.searchComplete</span><span class="PUNC">[</span><span class="NAME">kind</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="PUNC">[</span><span class="NAME">_s</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1844</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">fn</span><span class="PUNC">)</span><span class="NAME">_t.sf</span><span class="PUNC">=</span><span class="NAME">fn</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1845</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1846</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1847</span> </span><span class="NAME">getSearch.prototype</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1848</span>
<span class='line'>1849</span> </span><span class="COMM">// country translate</span><span class="WHIT">
<span class='line'>1850</span> </span><span class="NAME">countryT</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="NAME">Taiwan</span><span class="PUNC">:</span><span class="STRN">'台灣'</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1851</span>
<span class='line'>1852</span> </span><span class="NAME">searchComplete</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1853</span> </span><span class="NAME">Local</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">searcher</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1854</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="NAME">searcher.results</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1855</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">&&</span><span class="NAME">r.length</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">)</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">r.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1856</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">o.country</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1857</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.countryT</span><span class="PUNC">)</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">this.countryT</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1858</span> </span><span class="WHIT"> </span><span class="NAME">o.address</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">+</span><span class="NAME">o.region</span><span class="PUNC">+</span><span class="NAME">o.city</span><span class="PUNC">+</span><span class="NAME">o.streetAddress</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1859</span> </span><span class="WHIT"> </span><span class="NAME">o.phone</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1860</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">o.phoneNumbers</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1861</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">j</span><span class="PUNC">&lt;</span><span class="NAME">a.length</span><span class="PUNC">;</span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1862</span> </span><span class="WHIT"> </span><span class="NAME">o.phone.push</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">type</span><span class="PUNC">?</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">type</span><span class="PUNC">+</span><span class="STRN">': '</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">number</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1863</span> </span><span class="WHIT"> </span><span class="NAME">this.sf</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1864</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1865</span> </span><span class="COMM">/*
<span class='line'>1866</span> var imageUrl = GlocalSearch.computeStaticMapUrl(searcher.results, 350, 400);
<span class='line'>1867</span> document.getElementById("resultsImg").src = imageUrl;
<span class='line'>1868</span> */</span><span class="WHIT">
<span class='line'>1869</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1870</span> </span><span class="NAME">Web</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">searcher</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1871</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">searcher</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">s.cursor.currentPageIndex</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">=</span><span class="NAME">s.results</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1872</span> </span><span class="WHIT"> </span><span class="COMM">//sl('&lt;hr/>page '+p+':');</span><span class="WHIT">
<span class='line'>1873</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">&&</span><span class="NAME">r.length</span><span class="PUNC">)</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">r.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1874</span> </span><span class="WHIT"> </span><span class="NAME">this.sf</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1875</span> </span><span class="WHIT"> </span><span class="NAME">s.gotoPage</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 這會一直執行到不能執行為止。(2008/7: 0-3)</span><span class="WHIT">
<span class='line'>1876</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1877</span>
<span class='line'>1878</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// searchComplete</span><span class="WHIT">
<span class='line'>1879</span>
<span class='line'>1880</span>
<span class='line'>1881</span> </span><span class="COMM">// deal function</span><span class="WHIT">
<span class='line'>1882</span> </span><span class="NAME">sf</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1883</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1884</span>
<span class='line'>1885</span> </span><span class="NAME">s</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1886</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getSearch: search ['+w+']');</span><span class="WHIT">
<span class='line'>1887</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">)</span><span class="NAME">this.searcher.execute</span><span class="PUNC">(</span><span class="NAME">w</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1888</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1889</span>
<span class='line'>1890</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1891</span>
<span class='line'>1892</span>
<span class='line'>1893</span>
<span class='line'>1894</span>
<span class='line'>1895</span>
<span class='line'>1896</span>
<span class='line'>1897</span>
<span class='line'>1898</span>
<span class='line'>1899</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
<span class='line'>1900</span> </span><span class="WHIT"> </span><span class="NAME">CeL.net.map</span><span class="WHIT">
<span class='line'>1901</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1902</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1903</span>
<span class='line'>1904</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
<span class='line'>1905</span>
<span class='line'>1906</span> </span><span class="NAME">CeL.setup_module</span><span class="PUNC">(</span><span class="NAME">module_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1907</span>
<span class='line'>1908</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1909</span> </span></pre></body></html>