網路應用需有效處理龐大地理資訊,圖形化呈現最直觀。Google Maps 以簡單 API 革新線上地圖開發模型,支援拖曳、即時更新無需重載頁面,成為 Mashup (混搭應用) 主流基礎。

資料來自美國人口普查局免費開放資料:
state CHAR(2)
zip CHAR(5)
longitude DECIMAL(16)
latitude DECIMAL(16)
population INTEGER
housingunits INTEGER
sqmeters INT8
REC2XML 函數可直接將查詢結果格式化為 XML,省去 PHP 組裝 XML 步驟genXML 函數語法略異,但輸出含根元素與 XML 宣告,格式更標準
var maxZoom = 12;
GEvent.addListener(map, 'moveend', function() {
var center = map.getCenterLatLng();
// 更新經緯度顯示...
if (map.getZoom() >= maxZoom) getZips();
else { /* 清除圖釘與提示放大 */ }
});
v2 縮放方向反轉,故 maxZoom 從 6 改為 12,判斷邏輯由 <= 改為 >=。
SELECT rec2XML(1.0, 'COLATTVAL', 'Zip', zip, state, longitude, latitude, population, sqmeters)
FROM census_data
WHERE longitude BETWEEN -71.2928 AND -71.1723
AND latitude BETWEEN 42.2915 AND 42.3551
FETCH FIRST 200 ROWS ONLY
輸出片段:
<Zip>
<column name="ZIP">02458</column>
<column name="STATE">MA</column>
...
</Zip>
PHP 需補充 XML 宣告與根元素再轉發前端。
EXECUTE FUNCTION genXMLquery("Zip", "SELECT * FROM census_data WHERE ...");
輸出已含根元素與 XML 宣告,可直接轉發。

Thread Group 設定 10 用戶/10 秒,每用戶 25 請求,測試 returnMarkers 腳本:
| 資料庫 | 平均回應 (ms) | 最小 (ms) | 最大 (ms) | KB/sec |
|---|---|---|---|---|
| Informix | 109 | 15 | 2031 | 25.75 |
本文原始碼可供下載作為專案起點,歡迎依需求修改擴充。