tag:blogger.com,1999:blog-59465307047421309702024-03-06T16:20:07.273+08:00Jax 的工作紀錄除了在整理學習上的經驗,同時也能幫助其他需要的人Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-5946530704742130970.post-44483820110398779072011-07-11T17:43:00.003+08:002014-10-08T13:43:31.830+08:00為 Blogger 的地點標記加上 Google Maps 呈現Blogger 增加了一個標記地點的功能,但只有標記也不知道能拿來做什麼,後來想想用JS寫了一個呈現的小程式,讓文章中設定的資訊可以直接呈現。<br />
<br />
以下程式不支援 IE,因為我不想在我的 Blog 上用 Framework,所以 IE 就沒辦法呈現,哈!只要將以下其中一個的程式碼加在 <strong style="color:red;"></body></strong> 之前就可以了。<br />
<br />
<strong>在[文章]的最[前面]插入地圖</strong><br />
<pre class="js" name="code"><script type="text/javascript">
function showGoogleMap(pos){
var w=300,h=300,z=14;
try {
var postOuter=document.getElementsByClassName(&#039;post-outer&#039;);
for(var i=0; i&lt;postOuter.length; i++){
var postLocation=postOuter[i].getElementsByClassName(&#039;post-location&#039;)[0];
var point=postLocation.getElementsByTagName(&#039;a&#039;)[0];
if(!point){continue;}
var mapIframe=&#039;&lt;iframe width=&quot;&#039;+w+&#039;&quot; height=&quot;&#039;+h+&#039;&quot; src=&quot;&#039;+point.href+&#039;&amp;output=embed&amp;iwloc=z&amp;z=&#039;+z+&#039;&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&#039;;
var postBody=postOuter[i].getElementsByClassName(&#039;post-body&#039;)[0];
switch(pos){
case &#039;loc-a&#039;:
postLocation.innerHTML+=mapIframe;
break;
case &#039;loc-b&#039;:
postLocation.innerHTML=mapIframe+postLocation.innerHTML;
break;
case &#039;post-a&#039;:
postBody.innerHTML+=mapIframe;
break;
case &#039;post-b&#039;:
default:
postBody.innerHTML=mapIframe+postBody.innerHTML;
break;
}
}
}catch(e){}
}
showGoogleMap(&#039;post-b&#039;);
</script>
</pre><br />
<strong>在[文章]的最[後面]插入地圖</strong><br />
<pre class="js" name="code"><script type="text/javascript">
function showGoogleMap(pos){
var w=300,h=300,z=14;
try {
var postOuter=document.getElementsByClassName(&#039;post-outer&#039;);
for(var i=0; i&lt;postOuter.length; i++){
var postLocation=postOuter[i].getElementsByClassName(&#039;post-location&#039;)[0];
var point=postLocation.getElementsByTagName(&#039;a&#039;)[0];
if(!point){continue;}
var mapIframe=&#039;&lt;iframe width=&quot;&#039;+w+&#039;&quot; height=&quot;&#039;+h+&#039;&quot; src=&quot;&#039;+point.href+&#039;&amp;output=embed&amp;iwloc=z&amp;z=&#039;+z+&#039;&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&#039;;
var postBody=postOuter[i].getElementsByClassName(&#039;post-body&#039;)[0];
switch(pos){
case &#039;loc-a&#039;:
postLocation.innerHTML+=mapIframe;
break;
case &#039;loc-b&#039;:
postLocation.innerHTML=mapIframe+postLocation.innerHTML;
break;
case &#039;post-a&#039;:
postBody.innerHTML+=mapIframe;
break;
case &#039;post-b&#039;:
default:
postBody.innerHTML=mapIframe+postBody.innerHTML;
break;
}
}
}catch(e){}
}
showGoogleMap(&#039;post-a&#039;);
</script>
</pre><br />
<strong>在[地點]的[前面]插入地圖</strong><br />
<pre class="js" name="code"><script type="text/javascript">
function showGoogleMap(pos){
var w=300,h=300,z=14;
try {
var postOuter=document.getElementsByClassName(&#039;post-outer&#039;);
for(var i=0; i&lt;postOuter.length; i++){
var postLocation=postOuter[i].getElementsByClassName(&#039;post-location&#039;)[0];
var point=postLocation.getElementsByTagName(&#039;a&#039;)[0];
if(!point){continue;}
var mapIframe=&#039;&lt;iframe width=&quot;&#039;+w+&#039;&quot; height=&quot;&#039;+h+&#039;&quot; src=&quot;&#039;+point.href+&#039;&amp;output=embed&amp;iwloc=z&amp;z=&#039;+z+&#039;&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&#039;;
var postBody=postOuter[i].getElementsByClassName(&#039;post-body&#039;)[0];
switch(pos){
case &#039;loc-a&#039;:
postLocation.innerHTML+=mapIframe;
break;
case &#039;loc-b&#039;:
postLocation.innerHTML=mapIframe+postLocation.innerHTML;
break;
case &#039;post-a&#039;:
postBody.innerHTML+=mapIframe;
break;
case &#039;post-b&#039;:
default:
postBody.innerHTML=mapIframe+postBody.innerHTML;
break;
}
}
}catch(e){}
}
showGoogleMap(&#039;loc-b&#039;);
</script>
</pre><br />
<br />
實際呈現樣式:<br />
<a href="http://4.bp.blogspot.com/-0BM7ftCBY98/ThrHVi3pAnI/AAAAAAAANHg/YnGEHPuZ-Fw/s1600/add%2Bgooglemaps%2Bin%2Bblogger%2B1.jpg"><img src="http://4.bp.blogspot.com/-0BM7ftCBY98/ThrHVi3pAnI/AAAAAAAANHg/YnGEHPuZ-Fw/s512/add%2Bgooglemaps%2Bin%2Bblogger%2B1.jpg" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBtEgvWg_I32E8936fT7EWBEBXK25soXxnxr_-I1tV31b3PDFM3Jxe917LwY8VRL-4oPDytZgyF_VM4h8OMyae1zD3TyAwt5cUfoL5tsOoqwk6CVGiZ0TESJtm_qb4IQBeczvtnjCyyzlC/s1600/add+googlemaps+in+blogger+2.jpg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBtEgvWg_I32E8936fT7EWBEBXK25soXxnxr_-I1tV31b3PDFM3Jxe917LwY8VRL-4oPDytZgyF_VM4h8OMyae1zD3TyAwt5cUfoL5tsOoqwk6CVGiZ0TESJtm_qb4IQBeczvtnjCyyzlC/s512/add+googlemaps+in+blogger+2.jpg" /></a>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-70170795403124126062011-07-11T14:50:00.029+08:002013-06-10T22:57:44.539+08:00[轉載] Google Maps嵌入參數為了製作 Blogger 上的地圖呈現,找到一篇詳細參數說明的翻譯,雖然可用的選項不多,但留著以後方便查。<br />
<br />
<hr />轉載自:<a target="_blank" href="http://www.oulan.com/w/2011/05/24/google-maps-embed-parameters/">Google Maps嵌入参数</a><br />
原文:http://mapki.com/wiki/Google_Map_Parameters<br />
<br />
<br />
<h3>一般性的內容</h3><p><strong>q=</strong><br />
這是最常用的參數。 <br />
<br />
查詢- 所有被傳入這個參數的內容會被象maps.google.com中的查詢輸入框中所輸入的內容一樣被處理,特別是:</p><ul><li>要查找的精確地址,標記點或者在某個特殊點上顯示的信息框。<br />
<ul><li>提示:在附近不能有類似或者著名的地點的查詢值才是可靠的。例如,給出一個會議通知,告訴人們去128號門牌號碼的地點,但是只能在街區信息中發現一個12-8的位置(比如6/2010,誰會知道它以後會被匹配到什麼信息? )</li>
</ul></li>
<li>城鎮名字,或者前面的部分郵政編碼,會顯示到標記或者信息框裡。 </li>
<li>由緯度和經度信息指定的位置,用十進制形式,比如(52.123N,2.456W或52.123,-2.456),或者採用度/分/秒來表示(52 7 22.8N,2 27 21.6W或52 7 22.8,-2 27 21.6),或者度和分(52 7.38N,2 27.36W或52 7.38,-2 27.36)。 </li>
<li>在信息窗口和側邊欄中以粗體顯示的文本內容,增加括號()。你可以在不希望斷行的的時候使用%A0防止斷行發生。你還可以在行尾增加足夠多的%A0,並在後面跟一個空格(在URL中使用+號)來強制產生斷行。例子如原文指出:URL: <a target="_blank" href="http://maps.google.com?q=New+York,+NY+%28Mapki%A0is%A0a%A0very%A0good%A0Wiki%A0for%A0Google%A0Maps%21 %A0%A0%A0%A0%A0%A0%A0%A0+The%A0previous%A0line%A0is%A0now%A0sufficiently%A0long%21%29">http://maps.google.com?q=New+ York,+NY+(Mapki%A0is%A0a%A0very%A0good%A0Wiki%A0for%A0Google%A0Maps!%A0%A0%A0%A0%A0%A0%A0%A0+The%A0previous%A0line%A0is%A0now% A0sufficiently%A0long!)</a><br />
</li>
<li>to和from需要激活駕駛線路規劃功能。 </li>
<li>關鍵字near和loc:會激活本地搜索功能。 </li>
<li>兩個街之前可以用空格&空格形式,但是在URL裡需要使用+%26%或%20%26%20,而不是+&+或+&amp;+。 </li>
<li>需要指出的是+號,其實它與,號的作用相同。 </li>
<li>位置信息也可以由在@符號後的十進制形式來表達,如(@52.123,-2.456)。這個方式應該會自動給出一個較低的縮放比例。使用這種格式會影響到查詢的其它參數。 @符號,而不是near或者loc:可以形成單一的查詢結果。而其它的方式可能返回數以千計的結果。 </li>
<li>q=10+Downing+Str+is+not+here@51.50335,-0.227721<br />
可以在指定的地址放置一個自定義的提示標記,比如q=唐寧街10號不在這裡@51.50335,-0.227721。 <p></p><ul><li>這個標籤不能是國家的名字,或者沒有顯示出標記的時候。但是當給出座標的情況下,它可以是空白的。 </li>
</ul></li>
<li>座標之外增加()標籤可以為Google地圖提供一些提示。<br />
<ol><li><a target="_blank" href="http://www.oulan.com/w/?SJI1eexT">http://maps.google.com/maps?q=24.197611,120.780512</a><br />
我們的位置正好在某被錯誤標識的知名地點附近。讀者應該可以注意到正確的綠色箭頭。 </li>
<li><a target="_blank" href="http://www.oulan.com/w/?ZhsTv7_R">http://maps.google.com/maps?q=Dan@24.197611,120.780512</a><br />
Dan標籤可以擴展成為某機場的名字(Danville Regional Airport)</li>
<li><a target="_blank" href="http://maps.google.com/maps?q=24.197611,120.780512+%28Dan%29">http://maps.google.com/maps?q=24.197611,120.780512+ (Dan)</a><br />
這種情況會安全一些。但是顯示的是一個黃色的標記。 </li>
<li><a target="_blank" href="http://www.oulan.com/w/?ZRPEyU2f">http://maps.google.com/maps?q=loc:24.197611,120.780512</a>這是一個精確的地點表示。 </li>
</ol></li>
<li> 要注意用%表述非ASCII字符,比如(和)還有+是安全的,但是空格必須以%20表示。注意它們可能被用戶的瀏覽器解釋錯誤。 </li>
<li>sky:前綴用來查詢由Sky產生的KML內容。這個參數是被Google Sky使用,並產生KML輸出。 </li>
<li>包含GeoRSS數據的Google Earth .KML/.KMZ文件或者RSS輸出的完整URL,可以被Google Earth使用,裡麵包含的信息可以被顯示在地圖上。 </li>
</ul><p><strong>near=</strong><br />
可以使用位置信息的一部分,而不是像q=參數那樣輸入全部信息。 </p><p><strong>g=</strong><br />
這是一個給q參數提供額外上下文信息的地址或位置。 Google Maps在這裡自己用來保存上一次運行的搜索。注:如果這是第一次運行,它將包含你所開始的位置信息。所以它有潛在的信息洩露的風險,你需要檢查你是否真的明白並且要分享這個參數所對應的信息。 </p><br />
<h3>Search Mode/查詢模式</h3><ul><li><strong>mrt=</strong>指出查詢的類型(空白表示所有內容-缺省)<br />
<ul><li><strong>mrt=all</strong>值為all指出查詢所有內容。 </li>
<li><strong>mrt=loc</strong>值為loc指出是進行位置信息查詢,它需要<strong>q=</strong><strong>參數。 </strong></li>
<li><strong>mrt=yp</strong>值為yp指出是商業查詢(即:黃頁),它也需要<strong>q=</strong>信息,一般情況下是位置信息。 </li>
<li><strong>mrt=websearch</strong>值為websearh指出映射的web頁面。這些網頁通過GoogleBot能夠指出地理位置信息。 </li>
<li><strong>mrt=realestate</strong>值為realstate為固定資產查詢。 </li>
<li><strong>mrt=ds</strong>值為ds時為相關的地圖。 Google的GeoRSS源索引(可能是KML?)</li>
</ul></li>
<li><strong>start=</strong>start=參數會跳過前(start-1)個匹配結果。 </li>
<li><strong>num=</strong>num=參數顯示,最多這個數量的匹配結果。合法的範圍是0到20(但是0有點沒有用處)。 </li>
</ul><br />
<h3>Location/位置信息</h3><ul><li><strong>ll=</strong> 顯示地圖時中心點的緯度、經度信息。要注意次序。而只接受十進制數值格式才可以。 <br />
如果使用了這個參數但是沒有使用查詢,那麼地圖就以這個點為中心點顯示,但是沒有標記或信息窗口顯示。 </li>
<li><strong>sll=</strong><br />
商業查詢執行時指定的點的緯度和經度。你可以使用它來執行一個偏離中心的商業搜索。 Google使用它,所以在執行完一個商業查詢後,中心移動後可以使用“鏈接到此頁”來記錄地圖位置。使用<math>map.getBounds().getSouthWest().toUrlValue()</math>將返回與maps.google.com相同的結果。 </li>
<li><strong>spn=</strong><strong>spn=</strong>大致的經緯區域。如果沒有指縮放參數z=,那麼將調整縮放水平到一個合理的數值。 </li>
<li><strong>sspn=</strong><br />
屏幕區域,計算方法:<br />
<math>new GLatLng(map.getBounds().getNorthEast().lat() – map.getBounds().getSouthWest().lat(), map.getBounds().getNorthEast().lng() – map .getBounds().getSouthWest().lng()).toUrlValue()</math></li>
<li><strong>latlng=</strong>這是一個奇怪的參數。它有3個由,號分隔的數字。前兩個數字(大概相當於緯度和經度的100000倍)被忽略。第三個數字似乎是Google內部用來處理特殊業務的企業ID。比如latlng=0,0,14944637421527611642代表Blackpool社區教堂。指定此參數會執行一個針對該業務面頁的Google搜索,並顯示一個小地圖。其它參數,特別是q=參數,必須是有效的內容(但不一定涉到目標業務)。 </li>
<li><strong>cid=</strong> Similar to latitude and longitude, but generating a different map size.<br />
這個值似應該是地點的編號。原文的表述與latlang重複。 </li>
<li><strong>geocode=</strong><br />
geocode值似乎是在線路規劃時各關鍵點的編碼。每個geocode之間使用%3B來分隔。 </li>
<li><strong>radius=</strong>在指定半徑內採用本地化信息。需要sll參數指定信息或者類似中心點位置才能使用。單位會採用英里,但是在公制國家可能會採用公里。這個參數有助預防Google結果遠離了結果城市,並讓它被限制在指定區域。 </li>
</ul><br />
<h3>Map Display/地圖顯示</h3><ul><li><strong>t=</strong>地圖類型。 m=>常規地圖,k=>衛星地圖,h=>混合地圖,p=>地域地圖,e=>GoogleEarth</li>
<li><strong>z=</strong>縮放級別,取值範圍1~20。1比例尺最大,20比例尺最小。 </li>
<li><strong>layer=</strong>激活圖層。目前t表示交通情況。 </li>
<li><strong>lci=</strong>激活可以層疊的圖層。用,號分隔。<br />
<ul><li><strong>com.panoramio.all</strong> 來自Panoromio的圖片</li>
<li><strong>com.youtube.all</strong>來自YouTube的視頻</li>
<li><strong>org.wikipedia.en</strong>維基百科(英文)</li>
<li><strong>com.google.ugc.c752d13e87c4fbd7</strong>來自Webcams.travel的網絡攝像頭。 </li>
<li><strong>transit</strong>公共交通</li>
<li><strong>bike</strong>自行車線路</li>
</ul></li>
<li><strong>view=</strong>這個參數在測試的時候沒有看出分別。 </li>
</ul><br />
<h3>Directions/路徑規劃</h3><ul><li><strong>saddr=</strong> 出發點地址。 </li>
<li><strong>daddr=</strong>目標地址。 <br />
“+to:” 可以使用+to:子句增加多地點線路規劃時的目標地址信息,比如daddr=大石洞村+to:馬欄廣場+to:棠梨溝</li>
<li><strong>mra</strong> ?? 此參數涵義未知,可能的取值:dm/dpe/cc/ls…</li>
<li><strong>mrcr</strong> ??此參數涵義未知,可能的取值:0</li>
<li><strong>mrsp</strong>解析座標到街名。<br />
<ul><li><strong>mrsp=0</strong>打開從座標解析街名</li>
<li><strong>mrsp=1</strong>關閉從座標解析街名</li>
</ul></li>
<li><strong>mrad=</strong> 附加目標地址。如果你的行程有三個地點,你可以用saddr=,daddr=和mrad=表示,而不採用+to:子句。 </li>
<li><strong>dirflg</strong> 路線類型。<br />
<ul><li><strong>dirflg=h</strong>避免高速公路。 </li>
<li><strong>dirflg=t</strong>避免收費路段。 </li>
<li><strong>dirflg=r</strong>採用公共交通。僅在一些區域可用。還可以提出附加的時間信息。 </li>
<li><strong>dirflg=w</strong>步行方式。仍在測試狀態。 </li>
<li><strong>dirflg=b</strong>騎行方式。僅在某些區域可用,仍在測試狀態。 </li>
</ul></li>
<li><strong>via=</strong>用,號分隔的經由地址。 </li>
<li><strong>doflg=</strong>距離單位。缺省的是國家的法定標準。<br />
<ul><li><strong>doflg=ks</strong> ??這個真不知道。 </li>
<li><strong>doflg=ptk</strong>輸出距離單位顯示為公里。 </li>
<li><strong>doflg=ptm</strong>輸出距離單位顯示為英里。 </li>
</ul></li>
<li><strong>ttype=</strong> 時間類型。在dirflg=r的狀況下採用公共交通工具的時候date和time參數的解析類型。 <br />
<ul><li><strong>ttype=now</strong>現在就出發,這個會忽略date和time參數。 </li>
<li><strong>ttype=dep</strong> 出發時間。 </li>
<li><strong>ttype=arr</strong> 到達時間。 </li>
</ul></li>
<li><strong>date=</strong> 出發/到達日期,格式mm/dd/[yy]yy。由ttype決定是哪個日期。 </li>
<li><strong>time=</strong> 出發/到達時間,格式hh:mm am|pm。由ttype決定是哪個時間。 </li>
<li><strong>sort=</strong> 公共交通線路的排序 <br />
<ul><li><strong>sort=def</strong>缺省的排序方式。最快的行程優先。 </li>
<li><strong>sort=num</strong>最少的換乘優先。 </li>
<li><strong>sort=walk</strong>最少的步行優先。 </li>
</ul></li>
<li><strong>start=</strong>與搜索模式很像,選擇第n個結果。 </li>
</ul><br />
<h3>Street View/街景</h3><ul><li>cbll= Latitude,longitude for Street View.街景的經緯度信息。 </li>
<li></li>
<li>cbp= Street View window that accepts 5 parameters街景窗口可以接受5個參數:<br />
<ol><li>街景/地圖安排,11=上半部街景,下半部地圖,12=大部分是街景顯示,角部為可以調整角度的地圖</li>
<li>移軸角度,範圍是-90到90度。 </li>
<li>縮放範圍,0~2</li>
<li>斜度(採用度數表示),-90~90,缺省值是5</li>
</ol></li>
<li><strong>panoid=</strong>這裡的ID是附近的全景對象的ID。全景對象採用可以點擊的小箭頭,你可以移動到下一個對象。 </li>
</ul><br />
<h3>Output Control/輸出控制</h3><ul><li><strong>hl=</strong>主機語言。僅支持一部分語言,如hl=fr表示法語</li>
<li><strong>om=</strong>這個參數指定下方縮略圖是否顯示。如果指定一個1以外的值,縮略圖會關閉。 (經過測試1,2會顯示)。如果參數會被省略或者指定了值1,則顯示。 </li>
<li><strong>ie=</strong>指定輸入的字符編碼,比如ie=UTF8。 </li>
<li><strong>oe=</strong>指定輸出的字符編碼,比如oe=UTF8。 </li>
<li><strong>output=</strong>指定輸出格式,空白(缺省值)是標準的網頁格式。 <br />
<ul><li><strong>output=html</strong>在整合到Google地圖前使用舊風格的Google本地頁面格式,顯示小地圖和大的邊欄風格。 </li>
<li><strong>output=js</strong>輸出Google地圖使用的JavaScript對象和函數調用,包括駕駛線路的多邊形編碼和HTML格式的場景信息。 </li>
<li><strong>output=kml</strong>輸出包含當前地圖信息的KML文件。 </li>
<li><strong>output=mobile</strong>針對移動設備的格式輸出。在地圖中央位置顯示一個簡單的紅色圖釘。所有的移動基於鏈接而不是鼠標的移動。 </li>
<li><strong>output=nl</strong>輸出Google Earth和Google Maps可以獲取NetworkLink信息的KML文件內容。 </li>
<li><strong>output=embed</strong>輸出可以嵌入到第三方網站的HTML內容。這個參數僅與加密的s=參數一塊工作,據推測可能是阻止顯示不可預知的內容。 </li>
<li><strong>output=dragdir</strong>返回JSON對象。此對象包括反向的地理位置編碼和針對給定saddr(線路開始點)和daddr(線路結束點)線路的多邊形編碼。 </li>
<li><strong>output=georss </strong>針對當前地圖(可能僅適用於MyMaps)的GeoRSS輸出。 </li>
</ul></li>
<li><strong>f=</strong>控制查詢表單的顯示風格。 <br />
<ul><li><strong>f=d</strong>顯示成路徑規劃表單(有兩個輸入框,始點、終點)</li>
<li><strong>f=l</strong>此參數似乎沒有作用了。 </li>
<li><strong>f=q</strong>缺省的顯示方式,單一輸入框。 </li>
</ul></li>
<li><strong>pw=</strong>激活打印模式,初始化打印。與原文不同,pw=1/2兩個值均可以。測試環境是Ubuntu 11.04+Google Chrome。 </li>
<li><strong>v=</strong> 如果指定了output=kml,則此參數指定kml的版本。缺省是2.0,如果想指定是2.2,則v=2.2。 </li>
</ul><br />
<h3>提示信息窗口</h3><p>信息顯示窗口就是漫畫書中的對話氣球框。 </p><ul><li><strong>iwloc=</strong>指出顯示哪個提示窗口。比如q=橫山寺&iwloc=A,將顯示標記A所指示的位置。 <br />
在商業搜索中,iwloc=A到iwloc=J將根據標記打開對應的信息窗口,並且iwloc=near將覆蓋綠色的大箭頭,如果它正被顯示出來。 <p></p><ul><li> <strong>iwloc=addr</strong><br />
<strong>iwloc=addr</strong> 的寫法可以用來打開指定的地址所對應的提示框。路徑規劃中支持iwloc=start,iwloc=end,iwloc=pause1等寫法。原文的例子不易測試,可以採用下面方法,比如:<a target="_blank" href="http://maps.google.com/maps?q=%E6%A8%AA%E5%B1%B1%E5%AF%BA& ;iwloc=9755670891526949157">http://maps.google.com/maps?q=%E6%A8%AA%E5%B1%B1%E5%AF%BA&iwloc=9755670891526949157</a>,其中iwloc的值即為:<a target="_blank" href="http://maps.google.com/maps/place?cid=9755670891526949157&q=%E6%A8%AA%E5%B1%B1%E5%AF%BA&ved= 0CBsQ-gswAQ&sa=X&ei=SmraTZXgDJKdkAWU0f3PCQ&sig2=wG3VwvZANovxLFGR5ak0Eg">http://maps.google.com/maps/place?cid=9755670891526949157&q=%E6%A8%AA%E5%B1%B1% E5%AF%BA&ved=0CBsQ-gswAQ&sa=X&ei=SmraTZXgDJKdkAWU0f3PCQ&sig2=wG3VwvZANovxLFGR5ak0Eg</a>中cid=所指出的值。 </li>
</ul></li>
</ul><br />
<h3>我的地圖</h3><ul><li><strong>msa=</strong>參數目前應該沒有意義了。 </li>
</ul><br />
<h3>雜項</h3><ul><li><strong>vp=</strong> 這個參數會使Google地圖切換到版權服務模式。它以JavaScript格式返回所有者的版權信息而不是返回可以畫出地圖的html內容。 vp參數指出視圖位置(即地圖的中心位置)。版權服務僅在提供了<strong>spn=</strong>和<strong>z=</strong>參數的情況下才可以工作。它們分別代表區域和縮放比例。一還有一些可選的參數,比如<strong>t=</strong>,它用來指出地圖的類型,<strong>key=</strong>用來指出站點用來執行查詢時所用到的API key。例如:<a target="_blank" href="http://www.oulan.com/w/?XY7QlZYN">http://maps.google.com/maps?spn=0.030372,0.068665&z=6&t=h& vp=53.859462,-3.038235</a></li>
<li><strong>ftr=0</strong> 這個參數是用來關掉所有Google地圖實驗室特性的。當你遇到這些特性出現問題或者無法載入地圖,這個特性可能提供有用的途徑。使用這個參數之後,你需重新激活那些實驗室特性。比如訪問:<a target="_blank" href="http://www.oulan.com/w/?CuPLBd86">http://maps.google.com/maps?ftr=0</a>。這個鏈接會提示你關掉了哪些特性,並且會提示是否保存這種改變。 </li>
<li><strong>source=</strong> 未知。一個值是s_d,另一個是s_q。 </li>
<li><strong>noexp=</strong> 未知。其中一個值是0。 </li>
<li><strong>noal=</strong> 未知。其中一個可取值是0。 </li>
<li><strong>oi=nojs</strong> 在它合併到Google地圖之前使用舊風格的Google本地頁面格式,使用小地圖和大的邊條,就像前面指定output=html選項那樣。這個選項需要停止JavaScript的工作。 </li>
</ul>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-35134918863246214742010-12-24T01:02:00.001+08:002013-06-10T23:16:09.896+08:00[轉載] Google 氣球轉載自:<a target="_blank" href="https://github.com/robhawkes/google-bouncing-balls">robhawkes</a><br />
實在是太酷了,想儲存起來<br />
<a name='more'></a><br />
<br />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script><br />
<script>
$(function() {
var canvas = $("#c");
var canvasHeight;
var canvasWidth;
var ctx;
var dt = 0.1;
var pointCollection;
function init() {
updateCanvasDimensions();
var g = [new Point(202, 78, 0.0, 9, "#ed9d33"), new Point(348, 83, 0.0, 9, "#d44d61"), new Point(256, 69, 0.0, 9, "#4f7af2"), new Point(214, 59, 0.0, 9, "#ef9a1e"), new Point(265, 36, 0.0, 9, "#4976f3"), new Point(300, 78, 0.0, 9, "#269230"), new Point(294, 59, 0.0, 9, "#1f9e2c"), new Point(45, 88, 0.0, 9, "#1c48dd"), new Point(268, 52, 0.0, 9, "#2a56ea"), new Point(73, 83, 0.0, 9, "#3355d8"), new Point(294, 6, 0.0, 9, "#36b641"), new Point(235, 62, 0.0, 9, "#2e5def"), new Point(353, 42, 0.0, 8, "#d53747"), new Point(336, 52, 0.0, 8, "#eb676f"), new Point(208, 41, 0.0, 8, "#f9b125"), new Point(321, 70, 0.0, 8, "#de3646"), new Point(8, 60, 0.0, 8, "#2a59f0"), new Point(180, 81, 0.0, 8, "#eb9c31"), new Point(146, 65, 0.0, 8, "#c41731"), new Point(145, 49, 0.0, 8, "#d82038"), new Point(246, 34, 0.0, 8, "#5f8af8"), new Point(169, 69, 0.0, 8, "#efa11e"), new Point(273, 99, 0.0, 8, "#2e55e2"), new Point(248, 120, 0.0, 8, "#4167e4"), new Point(294, 41, 0.0, 8, "#0b991a"), new Point(267, 114, 0.0, 8, "#4869e3"), new Point(78, 67, 0.0, 8, "#3059e3"), new Point(294, 23, 0.0, 8, "#10a11d"), new Point(117, 83, 0.0, 8, "#cf4055"), new Point(137, 80, 0.0, 8, "#cd4359"), new Point(14, 71, 0.0, 8, "#2855ea"), new Point(331, 80, 0.0, 8, "#ca273c"), new Point(25, 82, 0.0, 8, "#2650e1"), new Point(233, 46, 0.0, 8, "#4a7bf9"), new Point(73, 13, 0.0, 8, "#3d65e7"), new Point(327, 35, 0.0, 6, "#f47875"), new Point(319, 46, 0.0, 6, "#f36764"), new Point(256, 81, 0.0, 6, "#1d4eeb"), new Point(244, 88, 0.0, 6, "#698bf1"), new Point(194, 32, 0.0, 6, "#fac652"), new Point(97, 56, 0.0, 6, "#ee5257"), new Point(105, 75, 0.0, 6, "#cf2a3f"), new Point(42, 4, 0.0, 6, "#5681f5"), new Point(10, 27, 0.0, 6, "#4577f6"), new Point(166, 55, 0.0, 6, "#f7b326"), new Point(266, 88, 0.0, 6, "#2b58e8"), new Point(178, 34, 0.0, 6, "#facb5e"), new Point(100, 65, 0.0, 6, "#e02e3d"), new Point(343, 32, 0.0, 6, "#f16d6f"), new Point(59, 5, 0.0, 6, "#507bf2"), new Point(27, 9, 0.0, 6, "#5683f7"), new Point(233, 116, 0.0, 6, "#3158e2"), new Point(123, 32, 0.0, 6, "#f0696c"), new Point(6, 38, 0.0, 6, "#3769f6"), new Point(63, 62, 0.0, 6, "#6084ef"), new Point(6, 49, 0.0, 6, "#2a5cf4"), new Point(108, 36, 0.0, 6, "#f4716e"), new Point(169, 43, 0.0, 6, "#f8c247"), new Point(137, 37, 0.0, 6, "#e74653"), new Point(318, 58, 0.0, 6, "#ec4147"), new Point(226, 100, 0.0, 5, "#4876f1"), new Point(101, 46, 0.0, 5, "#ef5c5c"), new Point(226, 108, 0.0, 5, "#2552ea"), new Point(17, 17, 0.0, 5, "#4779f7"), new Point(232, 93, 0.0, 5, "#4b78f1")];
gLength = g.length;
for (var i = 0; i < gLength; i++) {
g[i].curPos.x = (canvasWidth/2 - 180) + g[i].curPos.x;
g[i].curPos.y = (canvasHeight/2 - 65) + g[i].curPos.y;
g[i].originalPos.x = (canvasWidth/2 - 180) + g[i].originalPos.x;
g[i].originalPos.y = (canvasHeight/2 - 65) + g[i].originalPos.y;
};
pointCollection = new PointCollection();
pointCollection.points = g;
initEventListeners();
timeout();
};
function initEventListeners() {
$(window).bind('resize', updateCanvasDimensions).bind('mousemove', onMove);
canvas.get(0).ontouchmove = function(e) {
e.preventDefault();
onTouchMove(e);
};
canvas.get(0).ontouchstart = function(e) {
e.preventDefault();
};
};
function updateCanvasDimensions() {
canvas.attr({height: $(window).height(), width: $(window).width()}).appendTo("body");
canvasWidth = canvas.width();
canvasHeight = canvas.height();
draw();
};
function onMove(e) {
if (pointCollection){
pointCollection.mousePos.set(e.pageX, e.pageY);
}
};
function onTouchMove(e) {
if (pointCollection){
pointCollection.mousePos.set(e.targetTouches[0].pageX, e.targetTouches[0].pageY);
}
};
function timeout() {
draw();
update();
setTimeout(function() { timeout() }, 30);
};
function draw() {
var tmpCanvas = canvas.get(0);
if (tmpCanvas.getContext == null) { return; };
ctx = tmpCanvas.getContext('2d');
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
if (pointCollection){ pointCollection.draw(); }
};
function update() {
if (pointCollection) { pointCollection.update(); }
};
function Vector(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
this.addX = function(x) { this.x += x; };
this.addY = function(y) { this.y += y; };
this.addZ = function(z) { this.z += z; };
this.set = function(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
};
};
function PointCollection() {
this.mousePos = new Vector(0, 0);
this.points = new Array();
this.newPoint = function(x, y, z) {
var point = new Point(x, y, z);
this.points.push(point);
return point;
};
this.update = function() {
var pointsLength = this.points.length;
for (var i = 0; i < pointsLength; i++) {
var point = this.points[i];
if (point == null) continue;
var dx = this.mousePos.x - point.curPos.x;
var dy = this.mousePos.y - point.curPos.y;
var dd = (dx * dx) + (dy * dy);
var d = Math.sqrt(dd);
if (d < 150) {
point.targetPos.x = (this.mousePos.x < point.curPos.x) ? point.curPos.x - dx : point.curPos.x - dx;
point.targetPos.y = (this.mousePos.y < point.curPos.y) ? point.curPos.y - dy : point.curPos.y - dy;
} else {
point.targetPos.x = point.originalPos.x;
point.targetPos.y = point.originalPos.y;
};
point.update();
};
};
this.draw = function() {
var pointsLength = this.points.length;
for (var i = 0; i < pointsLength; i++) {
var point = this.points[i];
if (point == null){ continue; }
point.draw();
};
};
};
function Point(x, y, z, size, colour) {
this.colour = colour;
this.curPos = new Vector(x, y, z);
this.friction = 0.8;
this.originalPos = new Vector(x, y, z);
this.radius = size;
this.size = size;
this.springStrength = 0.1;
this.targetPos = new Vector(x, y, z);
this.velocity = new Vector(0.0, 0.0, 0.0);
this.update = function() {
var dx = this.targetPos.x - this.curPos.x;
var ax = dx * this.springStrength;
this.velocity.x += ax;
this.velocity.x *= this.friction;
this.curPos.x += this.velocity.x;
var dy = this.targetPos.y - this.curPos.y;
var ay = dy * this.springStrength;
this.velocity.y += ay;
this.velocity.y *= this.friction;
this.curPos.y += this.velocity.y;
var dox = this.originalPos.x - this.curPos.x;
var doy = this.originalPos.y - this.curPos.y;
var dd = (dox * dox) + (doy * doy);
var d = Math.sqrt(dd);
this.targetPos.z = d/100 + 1;
var dz = this.targetPos.z - this.curPos.z;
var az = dz * this.springStrength;
this.velocity.z += az;
this.velocity.z *= this.friction;
this.curPos.z += this.velocity.z;
this.radius = this.size*this.curPos.z;
if (this.radius < 1) this.radius = 1;
};
this.draw = function() {
ctx.fillStyle = this.colour;
ctx.beginPath();
ctx.arc(this.curPos.x, this.curPos.y, this.radius, 0, Math.PI*2, true);
ctx.fill();
};
};
init();
});
</script>
<canvas id="c" width="800" height="400" style="position:absolute;top:0;left:0;"></canvas>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-90207184442982486102009-11-25T16:00:00.014+08:002013-08-06T22:50:49.034+08:00[PHP] 取得 Google Analytics 的統計資料這裡我使用<a href="http://code.google.com/p/gapi-google-analytics-php-interface/">GAPI(google-analytics-php-interface)</a>這個工具來取得 Google Analytics 的統計資料<br />
<br />
如果不想使用這個工具取得資料,Google Analytics 也有 Protocol 的連接教學 <a href="http://code.google.com/intl/zh-TW/apis/analytics/docs/gdata/1.0/gdataProtocol.html">Data Export API - Protocol</a><br />
<br />
在取得資料的過程中,我在一個觀念上問題花了不少時間,主要是下面這兩個參數上的設定:<ul style="color: rgb(255, 0, 0);"><li>dimensions : 特性類似 SQL 的 GROUP BY</li>
<li>metrics : 類似 SQL SELECT 的資料欄位</li>
</ul><br />
其他的資料欄位:<a href="http://code.google.com/intl/zh-TW/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html">Dimensions & Metrics Reference</a><br />
<br />
<br />
工具的連結範例:<br />
<pre class="php" name="code"><?php
require_once('gapi.class.php');
/*建立與帳戶的連結*/
$ga = new gapi('email@yourdomain.com','password');
/*取得統計報告*/
$ga->requestReportData(
145141242,
array('browser','browserVersion'),
array('pageviews','visits')
);
foreach($ga->getResults() as $result){
echo $result;
echo 'Pageviews:',$result->getPageviews();
echo 'Visits:',$result->getVisits();
}
echo 'Total pageviews:',$ga->getPageviews();
echo 'total visits:',$ga->getVisits();
</pre><br />
<br />
函數的參數說明:<br />
<pre class="php" name="code"><?php
requestReportData(
$report_id,
$dimensions,
$metrics,
$sort_metric=null,
$filter=null,
$start_date=null,
$end_date=null,
$start_index=1,
$max_results=30
)
</pre><br />
<table class="table_list" border="1" cellpadding="3" cellspacing="0" style="font-size:90%;"><tr class="header"><th>屬性</th><th>型態</th><th>描述</th><th>範例</th></tr>
<tr><td>$report_id</td><td>String</td><td>統計報告的ID</td><td>1892302</td></tr>
<tr><td>$dimensions</td><td>Array</td><td>尺寸欄位,類似 SQL 的群組</td><td>array('browser')</td></tr>
<tr><td>$metrics</td><td>Array</td><td>結果欄位,類似 SQL 的顯示欄位</td><td>array('pageviews')</td></tr>
<tr><td>$sort_metric</td><td>Array(選擇性)</td><td>資料排序依據,"visits" 為 ASC,"-visits" 為 DESC</td><td>array('-visits')</td></tr>
<tr><td>$filter</td><td>String(選擇性)</td><td>過濾的邏輯條件</td><td> </td></tr>
<tr><td>$start_date</td><td>String(選擇性)</td><td>報告的起始時間'YYYY-MM-DD'</td><td>'2009-04-30'</td></tr>
<tr><td>$end_date</td><td>String(選擇性)</td><td>報告的起始時間'YYYY-MM-DD'</td><td>'2009-06-30'</td></tr>
<tr><td>$start_index</td><td>Int(選擇性)</td><td>資料的起始指標</td><td>1</td></tr>
<tr><td>$max_results</td><td>Int(選擇性)</td><td>資料的起始指標.最大 1000 筆</td><td>30</td></tr>
</table>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-35096141882974949232009-04-13T17:05:00.001+08:002011-07-11T15:17:16.321+08:00網頁常用編碼轉換 (iGoogle)小工具將一些 JavaScript 中常用的 escape, unescapek, encodeURI, decodeURI, encodeURIComponent, decodeURIComponent 及 HTML 跳脫與反跳脫製作成小工具。<br /><script src="http://www.gmodules.com/ig/ifr?url=http://weskerjax.googlepages.com/transform.xml&synd=open&w=500&h=320&title=%E7%B6%B2%E9%A0%81%E5%B8%B8%E7%94%A8%E7%B7%A8%E7%A2%BC%E8%BD%89%E6%8F%9B&border=%23ffffff%7C0px%2C1px+solid+%23595959%7C0px%2C1px+solid+%23797979%7C0px%2C2px+solid+%23898989&output=js"></script>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com1tag:blogger.com,1999:blog-5946530704742130970.post-8279857905236027052009-03-29T08:09:00.012+08:002012-03-16T22:58:01.076+08:00iGoogle 小工具製作心得iGoogle 小工具主要是以 XML 為主體,再加上 HTML、CSS 及 JavaScript 所組成的,基本上只要會後面三種語言,要開發 iGoogle 小工具是非常快樂的一件事。<br /><br />在這裡我只做一些的教學及心得分享,詳細的規範及 API 說明,請察看官方網站 <a href="http://www.google.com.tw/intl/zh-TW/apis/gadgets/docs-home.html">Google 小工具 API 開發人員指南</a>,開發指南裡面寫的很清楚,還有很多的範例可以參考。<br /><br />心得建議:<br /><ul><li>再<span style="color: rgb(255, 0, 0); font-weight: bold;">開發時</span>建議 XML 的<span style="color: rgb(255, 0, 0); font-weight: bold;">檔名不要太正式</span>,iGoogle 的平台會 cache XML,造成檢視上會出現不一致情況,等到要發佈時再取一個正式的檔名,避免不必要的問題發生。</li><li>如果要使用 session 和 cookie 做登入驗證的話,最好使用 <span style="color: rgb(255, 0, 0); font-weight: bold;"><iframe></span> 去處理,會比較容易達成且安全問題也比較少。</li><li>在 ModulePrefs 中的 category 屬性也記得加上去,在官方的開發人員指南中並沒有說明,共有:<br /><ul><li>politics</li></ul><ul><li>tools</li></ul><ul><li>funandgames</li></ul><ul><li>lifestyle</li></ul><ul><li>finance</li></ul><ul><li>communication<br /></li></ul><ul><li>等...。</li></ul></li><br /><li>多利用[<a href="http://www.google.com.tw/intl/zh-TW/apis/gadgets/gs.html#Scratchpad">便條簿</a>]做測試可以減少不少時間。<br /></li><li>在<span style="color: rgb(255, 0, 0); font-weight: bold;">測試時</span>最好在 iGoogle 上另開一個[<span style="color: rgb(255, 0, 0); font-weight: bold;">分頁</span>],免得自己原本常用的小工具被打亂。<br /></li><li>在測試的[分頁]中最好加上[<a href="http://fusion.google.com/add?moduleurl=developer.xml">開發人員小工具</a>]這個小工具去管理 cache 問題。<br /></li></ul><br />小工具範例:<br /><pre class="xml" name="code"><br /><?xml version="1.0" encoding="UTF-8" ?><br /><Module><br /> <ModulePrefs<br /> title="單位換算"<br /> description="更方便的介面處理單位制度上的換算"<br /> directory_title="單位換算"<br /> author="Jax"<br /> author_email="weskerjax+feed@gmail.com"<br /> thumbnail=<br /> "http://weskerjax.googlepages.com/unit_converter_thumbnail.png"<br /> screenshot=<br /> "http://weskerjax.googlepages.com/unit_converter_screenshot.png"<br /> title_url="http://jax-work-archive.blogspot.com/"<br /> category="tools"<br /> height="300"><br /> <Locale lang="zh-tw" country="TW"/><br /> <Require feature="tabs"/><br /> <Require feature="dynamic-height"/><br /> </ModulePrefs><br /> <UserPref<br /> name="type"<br /> display_name="預設開啟的頁籤"<br /> default_value="長度"<br /> datatype="enum"><br /> <EnumValue value="長度"/><br /> <EnumValue value="重量"/><br /> <EnumValue value="面積"/><br /> <EnumValue value="體積"/><br /> </UserPref><br /> <Content type="html"><br /> <![CDATA[<br /><style type="text/css"><br />.JContent table{<br /> margin-top:5px;<br /> width:100%;<br />}<br />.JContent th{<br /> background-color:#99CCFF;<br /> padding-top:5px;<br />}<br />.JContent label{<br /> text-align:center;<br /> padding:3px;<br /> display:block;<br /> font-size:12px;<br />}<br />.JContent label input{<br /> display:block;<br /> text-align:left;<br /> line-height:1.1em;<br /> font-size:11px;<br /> width:95%;<br />}<br /></style><br /><script type="text/javascript"><br />var prefs = new _IG_Prefs(__MODULE_ID__);<br />function set_event__MODULE_ID__(tabId){<br /> var inputs=_gel(tabId).getElementsByTagName('input');<br /> for (var i=0, j=inputs.length; i<j; i++){<br /> el=inputs[i];<br /> /*設定 onkeyup 時處理單位換算*/<br /> el.onkeyup=function(){<br /> this.value=this.value.match(/[0-9]+[\.]?[0-9]*/);<br /> var rate=this.getAttribute('rate');<br /> var value=parseFloat(this.value)/parseFloat(rate);<br /><br /> var table=this;<br /> while(table.tagName!="TABLE"){table=table.parentNode;}<br /><br /> var inputs=table.getElementsByTagName('input');<br /> for (var i=0, j=inputs.length; i<j; i++){<br /> chg=inputs[i];<br /> r=chg.getAttribute('rate');<br /> if(r==rate){continue;}<br /><br /> if(this.value){chg.value=value*parseFloat(r);}<br /> else{chg.value='';}<br /> };<br /> };<br /> /*設定 onfocus 選取所有文字*/<br /> el.onfocus=function(){this.select()};<br /> };<br /> /*讓小工具能夠自行調整大小*/<br /> _IG_AdjustIFrameHeight();<br />}<br />function init() {<br /> /*建立頁籤並選定預選頁籤*/<br /> var tabs = new _IG_Tabs(__MODULE_ID__,prefs.getString("type"));<br /> tabs.addTab("長度","J_length",set_event__MODULE_ID__);<br /> tabs.addTab("重量","J_weight",set_event__MODULE_ID__);<br /> tabs.addTab("面積","J_area",set_event__MODULE_ID__);<br /> tabs.addTab("體積","J_volume",set_event__MODULE_ID__);<br />}<br />_IG_RegisterOnloadHandler(init);/*載入時呼叫的事件處理常式*/<br /></script><br /><div class="JContent" id="J_length"><br /> <table border="1" cellspacing="0" cellpadding="0"><br /> <tr><br /> <td><label>公尺<input rate="1" type="text" /></label></td><br /> <td><label>公里<input rate="0.001" type="text" /></label></td><br /> <td><label>海里<input rate="0.00053996" type="text" /></label></td><br /> <tr><br /> <td><label>英吋<input rate="39.370" type="text" /></label></td><br /> <td><label>英呎<input rate="3.2808" type="text" /></label></td><br /> <td><label>英碼<input rate="1.0936" type="text" /></label></td><br /> </tr><br /> <td><label>台尺<input rate="3.3003" type="text" /></label></td><br /> <td><label>市里<input rate="2e-3" type="text" /></label></td><br /> <td><label>市引<input rate="0.03" type="text" /></label></td><br /> </tr><br /> </table><br /></div><br /><div class="JContent" id="J_weight"><br /> <table border="1" cellspacing="0" cellpadding="0"><br /> <tr><br /> <td><label>公斤<input rate="1" type="text" /></label></td><br /> <td><label>公克<input rate="1e+3" type="text" /></label></td><br /> <td><label>公噸<input rate="1e-3" type="text" /></label></td><br /> </tr><br /> <tr><br /> <td><label>英磅<input rate="2.2046" type="text" /></label></td><br /> <td><label>盎司<input rate="35.273" type="text" /></label></td><br /> <td><label>英噸<input rate="9.8421e-4" type="text" /></label></td><br /> </tr><br /> <tr><br /> <td><label>美噸<input rate="0.0011023" type="text" /></label></td><br /> <td><label>格令<input rate="15432" type="text" /></label></td><br /> <td><label>克拉<input rate="5000" type="text" /></label></td><br /> </tr><br /> <tr><br /> <td><label>台斤<input rate="1.6667" type="text" /></label></td><br /> <td><label>台兩<input rate="26.667" type="text" /></label></td><br /> <td><label>市擔<input rate="0.02" type="text" /></label></td><br /> </tr><br /> </table><br /></div><br /><div class="JContent" id="J_area"><br /> <table border="1" cellspacing="0" cellpadding="0"><br /> <tr><br /> <td><label>公畝<input rate="100.00" type="text" /></label></td><br /> <td><label>公頃<input rate="1" type="text" /></label></td><br /> <td><label>平方公里<input rate="0.01" type="text" /></label></td><br /> </tr><br /> <tr><br /> <td><label>平方英寸<input rate="155e+5" type="text" /></label></td><br /> <td><label>平方英尺<input rate="107640" type="text" /></label></td><br /> <td><label>平方碼<input rate="11960" type="text" /></label></td><br /> </tr><br /> <tr><br /> <td><label>英畝<input rate="2.4711" type="text" /></label></td><br /> <td><label>平方英里<input rate="0.003861" type="text" /></label></td><br /> <td> </td><br /> </tr><br /> </table><br /></div><br /><div class="JContent" id="J_volume"><br /> <table border="1" cellspacing="0" cellpadding="0"><br /> <tr><br /> <td><label>立方公尺<input rate="1" type="text" /></label></td><br /> <td><label>公升<input rate="1e+3" type="text" /></label></td><br /> <td><label>毫升<input rate="1e+6" type="text" /></label></td><br /> </tr><br /> <tr><br /> <td><label>英國加侖<input rate="219.97" type="text" /></label></td><br /> <td><label>液體加侖<input rate="264.17" type="text" /></label></td><br /> <td><label>固體加侖<input rate="227.02" type="text" /></label></td><br /> </tr><br /> </table><br /></div><br /> ]]><br /> </Content><br /></Module><br /></pre><br /><br />範例預覽:<br /><script src="http://www.gmodules.com/ig/ifr?url=http://weskerjax.googlepages.com/unit_converter.xml&up_type=%E9%87%8D%E9%87%8F&synd=open&w=420&h=410&title=%E5%96%AE%E4%BD%8D%E6%8F%9B%E7%AE%97&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script><br />範例原始檔:<a target="_blank" href="http://weskerjax.googlepages.com/unit_converter.xml">unit_converter.xml</a><br /><br /><br />第一個開發的小工具:<br /><script src="http://www.gmodules.com/ig/ifr?url=http://www.wacanai.com/google_tool/wacanai_mini_0902.xml&up_list_row=5&synd=open&w=420&h=300&title=Wacanai+Mini+v0.5+for+iGoogle&lang=zh-TW&country=TW&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-6640785687768301032008-04-17T00:29:00.004+08:002013-06-11T20:56:10.960+08:00iGoogle 上的日曆小工具將日曆加入 iGoogle 分頁,這個小工具還可以置換成其他網頁<br />
介紹網站:<a target="_blank" href="http://www.bolinfest.com/changeblog/2007/05/03/your-page-here-an-igoogle-gadget/" rel="bookmark" title="Permanent Link: Your Page Here (an iGoogle gadget)">Your Page Here (an iGoogle gadget)</a><br />
<a target="_blank" href="http://www.google.com/ig/adde?moduleurl=bolinfest.com/ig/your_page_here.xml">工具連結</a><br />
<br />
利用 HTML/Javascript 小工具將 Google 日曆的 iframe 加入 iGoogle<br />
介紹網站:<a target="_blank" href="http://googlesystem.blogspot.com/2008/02/add-full-web-pages-to-igoogle.html">Add Full Web Pages to iGoogle</a><br />
<a target="_blank" href="http://www.google.com/ig/adde?moduleurl=chw2054.googlecode.com/svn/trunk/htmljs/htmljs.xml">工具連結</a>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-86848146024454687172007-10-16T23:09:00.002+08:002013-06-11T20:48:47.507+08:00好用的 iGoogle今天看<a target="_blank" href="http://soft4fun.net/article.asp?id=294">硬是要學</a>中寫了一篇有關 iGoogle 的介紹,心血來潮也將我的 iGoogle 分類了一下,而且發現到原來之前掛的書籤工具Google Bookmarks蠻人性化的,除了高度不能變長,且最多只顯示四個,也沒有捲軸,真是缺失阿!!<br />
<br />
不過呢!在新增和修改的操作上很人性化,還具有分類的功能,你只要貼上網址,他自動會去抓那個網頁的標題,真的很方便的說,不知道以後會不會修得更好,期待一下吧!要是沒有的話,只好自己寫一個。<br />
<br />
iGoogle 可以自訂喜歡的樣式,還可以增加頁籤,不用將一推工具都放在一起了,可以看起來更簡潔,Google 有很多服務都很好用,有興趣的人可以多嘗試一些沒用過的服務,或者去看看相關的介紹文章,別錯失了這些好用的工具。<br />
<br />
教學連結:<a target="_blank" href="http://soft4fun.net/article.asp?id=294">硬是要學</a>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0tag:blogger.com,1999:blog-5946530704742130970.post-20518872843639321752007-09-16T03:21:00.002+08:002011-07-11T15:16:32.387+08:00Google 的免費空間今天為了找一個空間來放我寫的網頁,原本想用 <span style="font-weight: bold;">Google 文件</span>來放的,但對於 HTML 的格式還是有些限制,所以只好找其他的辦法了,於是我想我們的 Google 大神應該有辦法為我解決這個問題,果然讓我找到了,每個 Google 帳號都擁有 100MB 的免費空間,但目前只有英文版,而且空間並不大,還好我只有放一些純文字文件,所以已經很夠用了。<br /><br />我找到一個相關的說明網頁<br /><a href="http://fecfec.googlepages.com/gpage.htm">http://fecfec.googlepages.com/gpage.htm</a><br /><br />Google 免費空間<br /><a href="http://pages.google.com/">Google page Creator</a>Jax Huhttp://www.blogger.com/profile/01953021685585893658noreply@blogger.com0