Nexti 部落格

GeoServer 2.0 UI 中文化

E-mail 列印 PDF


最近進行了GeoServer 2.0.2 UI 的中文化,翻譯的不是很順暢,不過還是拋磚引玉一下,
希望讓這套很優秀的 Open Source GIS Server 在台灣更多人使用,如果有更好的翻譯內容及技術建議,
也請多多分享囉。


套用的方式,只要把附件的 GeoServerApplication_zh.properties
複製到 {geoserver root}/webapps/geoserver/WEB-INF/classes 下即可。

 

檔案下載:GeoServerApplication_zh.properties

 

翻譯過程的參考資料來源:

官方網站的簡略說明

開發者的討論,點出了翻譯的過程跟工具

波蘭語的翻譯討論串,也有一些值得參考的

 


 

TWD97 TWD67 在 EPSG 檔案中的定義

E-mail 列印 PDF

最新版的PROJ4已經把 TWD67,TWD97相關的 epsg 加入了。
下面把台灣常用的幾個epsg定義紀錄起來,很多時候會用到。
Google Map自訂的投影參數也順便記錄一下。

 

# WGS 84
<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs  <>

# Spherical Mercator for Web GIS
<900913> +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <>

# TWD97 / TM2 zone 119
<3825> +proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
# TWD97 / TM2 zone 121
<3826> +proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
# TWD67 / TM2 zone 119
<3827> +proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y_0=0 +ellps=aust_SA +units=m +towgs84=-752,-358,-179,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +no_defs  <>
# TWD67 / TM2 zone 121
<3828> +proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=aust_SA +units=m +towgs84=-752,-358,-179,-0.0000011698,0.0000018398,0.0000009822,0.00002329 +no_defs  <>

 

2010/04/09 更新:
TWD67的坐標因為與WGS84使用不同的大地基準,所以補上towgs84的7參數轉換。 
EPSG雖然納入TWD97,TWD67,但是TWD67若欠缺towgs84參數,坐標轉換的結果會差很多。
同時附上WKT格式的修正版:(官方網站能找到的都有缺漏)

 

3827=PROJCS["TWD67 / TM2 zone 119", GEOGCS["TWD67", DATUM["Taiwan Datum 1967", SPHEROID["GRS 1967 Modified", 6378160.0, 298.25, AUTHORITY["EPSG","7050"]], AUTHORITY["EPSG","1025"], TOWGS84[-752, -358, -179, -0.0000011698, 0.0000018398, 0.0000009822, 0.00002329]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH], AUTHORITY["EPSG","3821"]], PROJECTION["Transverse Mercator", AUTHORITY["EPSG","9807"]], PARAMETER["central_meridian", 119.0], PARAMETER["latitude_of_origin", 0.0], PARAMETER["scale_factor", 0.9999], PARAMETER["false_easting", 250000.0], PARAMETER["false_northing", 0.0], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH], AUTHORITY["EPSG","3827"]]

3828=PROJCS["TWD67 / TM2 zone 121", GEOGCS["TWD67", DATUM["Taiwan Datum 1967", SPHEROID["GRS 1967 Modified", 6378160.0, 298.25, AUTHORITY["EPSG","7050"]], AUTHORITY["EPSG","1025"], TOWGS84[-752, -358, -179, -0.0000011698, 0.0000018398, 0.0000009822, 0.00002329]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH], AUTHORITY["EPSG","3821"]], PROJECTION["Transverse Mercator", AUTHORITY["EPSG","9807"]], PARAMETER["central_meridian", 121.0], PARAMETER["latitude_of_origin", 0.0], PARAMETER["scale_factor", 0.9999], PARAMETER["false_easting", 250000.0], PARAMETER["false_northing", 0.0], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH], AUTHORITY["EPSG","3828"]]

 

 

Multi viewport on PV3D

E-mail 列印 PDF

PV3D 有一個很有用的最佳化方法:Multi Viewport。

以 Yahee Earth為例,場景主要可以分為三個部份:

  1. 星空背景 (Starbox)
  2. 地球 (Globe)
  3. 較細的地圖圖幅 (BoundingGlobe)

這三個部份我分別作了Custom Primitive去實作,
Starbox 很顯然是畫面中最後面的圖層,
而Globe與Bounding Globe在邏輯上是緊密貼合的兩個物件,
在PV3D的BasicRenderEngine處理下,後兩者的套疊常出現上下層的錯亂情形,
改用QuadrantRenderEngine後可解決這現象,但是效能會下降至3~5fps。

此時Multi viewport就派上了用場。

閱讀全文...
 

Flash Map 3D

E-mail 列印 PDF

最近用 papervision 作了一個 3D Map Browser,
想試試看把 Google Earth 的功能作在 web 上的可行性,
由於使用的是Yahoo Map的底圖,就姑且稱之為 Yahee Earth 吧。(ya, it's yahEE, not Yahoo Earth)

下面是試作成果,Trial below, it's buggy......

閱讀全文...
 

PHP proxy script for cross domain issue

E-mail 列印 PDF

在 flash 跟 ajax 的程式的開發者有時會碰到 cross-domain 的安全限制。
雖然是為了防止有心人士從中動手腳,但是對我們正牌的開發人員卻非常的不友善。
解決的方法大概是使用 proxy 的技術,網路上找到一些 php proxy script,
不過都是針對 xml request 來寫的,於是我加了幾行,讓這支 script 能使用在更多的 content-type。

<?php
$ch = curl_init();
$timeout = 30;
$userAgent = $_SERVER['HTTP_USER_AGENT'];

curl_setopt($ch, CURLOPT_URL, $_REQUEST['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);

$response = curl_exec($ch);     

if (curl_errno($ch)) {
	echo curl_error($ch);
} else {
	$info = curl_getinfo($ch);
	curl_close($ch);
	
	header("Content-Type: ".$info['content_type']);
	echo $response;
}
?>
 
頁 1 總共 2