mirror of
https://scm.univ-tours.fr/22107988t/rappaurio-sae501_502.git
synced 2025-09-06 21:45:58 +02:00
1916 lines
425 KiB
HTML
1916 lines
425 KiB
HTML
<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),<span style="text-decoration:line-through;">不設定時會從呼叫時之 path 取得</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">': <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">'</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"><</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">'<br/>'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'<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">'<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;"><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">'<br/>'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'<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;"><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">'</b><br/>'</span><span class="PUNC">+</span><span class="NAME">r.address</span><span class="PUNC">+</span><span class="STRN">'<br/>'</span><span class="PUNC">+</span><span class="NAME">r.phone.join</span><span class="PUNC">(</span><span class="STRN">'<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">'<br/>'</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="COMM">/*+r.listingType+'<br/>'*/</span><span class="PUNC">+</span><span class="NAME">r.content</span><span class="PUNC">+</span><span class="STRN">'<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">') <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</a></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">'<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">'</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">'<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\';"><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">'</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"><</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">'<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">'<em>'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">?</span><span class="STRN">'<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">'</a>'</span><span class="PUNC">:</span><span class="NAME">d.name</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'</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">'<div class="adr">'</span><span class="PUNC">+</span><span class="NAME">a.join</span><span class="PUNC">(</span><span class="STRN">'<br/>'</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'>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²'</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(,'<hr class="sp"/><span onclick="">search near</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">'<br/>'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/(<\/(div|p)>)\s*<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.. (<em onclick="if(loadMapData.run)loadMapData.run=0,sl(\'User stopped.\');" style="cursor:pointer;">stop</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"><</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,'<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"><</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"><</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"><</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">'<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">'<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">'><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">/<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">/<[^>]+>/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">'</a> [<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">'</a>]</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">'<li class="lost"><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">'</a></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">'</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">'0123456789'</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"><</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">'<div style="float:right;cursor:pointer;" title="close" onclick="sA2.c.style.display=\'none\';">[×]</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 沒找到 [<span style="color:#e23;">'</span><span class="PUNC">+</span><span class="NAME">adr</span><span class="PUNC">+</span><span class="STRN">'</span>]:<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">'對於 [<span style="color:#e23;">'</span><span class="PUNC">+</span><span class="NAME">adr</span><span class="PUNC">+</span><span class="STRN">'</span>],您是不是指:<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"><</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">'<li><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">'">〒</span> <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">'</span></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">'</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"><</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"><</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">'<br/><a href="#" onclick="return showNeighbor.byD();" title="search near">搜尋附近</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"><</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">' <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">'</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">'<br/>from: '</span><span class="PUNC">+</span><span class="NAME">p</span><span class="PUNC">+</span><span class="STRN">',<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">'抱歉,找不到 <em>'</span><span class="PUNC">+</span><span class="NAME">address</span><span class="PUNC">+</span><span class="STRN">'</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"><</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">'<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">'</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<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"><</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"><</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: <em>Warning: function.js is not included?</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">'<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">'</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: 最多取用點數,<=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"><</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"><</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"><</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"><</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"><</span><span class="NAME">c</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="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('<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+']<br/>* '+_t.locArray2.join('<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<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"><</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<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"><</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"><</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">/<[/</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('<em>Not catched: '+adr+'</</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"><</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"><</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"><</span><span class="NAME">em</span><span class="PUNC">></span><span class="STRN">'+d.name+'</span><span class="PUNC"><</span><span class="REGX">/em>'+(d.description?'<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<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<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"><</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">'<em>抱歉,您的瀏覽器不支援 Google Maps!</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<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,'<br/>')+'<hr/>',1);for(i in o)t.push('['+(typeof o[i])+'] '+i);sl(t.sort().join('<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('<a href="'+r.unescapedUrl+'">'+r.title+'</a><br/><div style="margin-left:3em;font-size:.8em;">'+r.content+'</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"><</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"><</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('<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"><</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> |