Brian的雜記
  • Introduction
  • Brian's 雜記
    • My Awesome API
    • FB 大頭貼
    • 硬體雜記
    • PHP
    • project
      • 模擬器
      • WAMP
    • WinMerge
    • 雜記
      • LINQ
      • 方法
      • Grid View
      • namespace
      • global
      • 物件導向
      • Excel
      • VS2017
      • single sign on
      • Master
      • Https
      • 憑證
      • 略過憑證不符
      • NLog
      • 團隊開發
      • .NET Core
      • 共用網路上的芳鄰
      • 爬蟲
      • NPOI
      • RSS
      • 多執行緒
      • 記憶體回收
      • 密碼學
        • BCrypt
        • AES
      • 主機環境建置
      • Session
      • Error
      • IIS 相關
      • 無障礙相關
      • 介面
        • 影像地圖
      • telnet
        • smtp
      • nslookup
      • 協助客戶解決問題
      • 驗證欄位
      • 網站管理
      • 工具整理
    • 正規表示法
    • 影像處理
    • IntelliJ Idea
    • 觀念
      • Clean Code
        • 命名
        • 函式
        • 註解
        • 編排
        • 物件及資料結構
        • 錯誤處理
        • 邊界
        • 單元測試
        • 類別
      • Java 程式風格
      • Design Pattern
        • 單例模式
      • 同步
      • 畫圖
        • ER-Model
        • 類別圖
        • Use Case
        • 有限狀態機
      • 資料 API 文件 分析
      • CORS & SSL
      • 利用DISC幫助溝通
      • OAS
    • 檔案上傳
      • FileStore
      • App Engine
      • Google Storage
    • OAuth vs Open ID
    • MIME
    • 虛擬桌面
    • 待看資料
    • Selenium
    • CDN
    • HTTP
    • 編碼
    • 2nd-ML100Days
      • jupyter
    • 微服務
      • 設計
        • 1 ~ 5
        • 6
        • 7
        • 8
        • 9
    • Gradle
    • Maven
    • Error
    • 批次檔 BAT
    • Kurento
    • WebSocket & WebRTC
  • 需求面能力
    • User Story
  • Google Cloud Platform
    • Compute Engine
  • Python
    • 基本語法
    • Pandas
    • 套件
    • Matplotlib
    • Encoder
    • jupyter
  • Java
    • Java
      • File
      • Exception
      • 物件導向觀念
      • 加密
      • HTTP
      • 集合
      • Stream()
      • Web
      • ResultSet
      • JDK6
      • JDK8
    • 讀取、複寫MP3 Tag
    • Log4j2
    • Servlet
      • 容器
    • JSP
    • JBOSS
    • JWT
    • PreparedStatement
    • Error
    • Spring
      • Spring Boot
        • @Value
        • Build
      • RequestParameter
      • Error
      • Autowired
      • JPA
      • FeignClient
      • WebSocket
      • thymeleaf
      • Security
      • Test
      • Scheduled
      • Redirect
    • IntelliJ
  • Linux
    • Linux
    • Shell Script
    • Cygwin(在Windows執行Linux指令)
  • 前端
    • HTML
      • Link
    • CSS
      • Position
      • padding color
      • display
    • JS
      • jQuery
        • Select2
      • fancybox
      • ES6
      • 效能
      • GoogleMap API
        • Marker
        • InfoWindow
      • 事件
      • CKEditor
      • TGOS
      • JSON
      • QRcode
      • 核心概念
        • 物件 變數 型別
          • number
          • String
          • boolean
          • null & undefined
          • Symbol
        • JS 物件概念
        • 深入理解JS 函式物件
        • 更多ES2015/ES6 全新語言特性
      • Promise
    • 效果應用
  • 資料庫
    • 注意事項
    • MariaDB
    • MySQL
      • inner join 和 join
      • 字串比對
      • 倒數資料
    • SQL
      • DDL 資料定義語言
      • DML 資料操縱語言
      • DCL 資料控制語言
      • TCL 交易控制語言
      • T-SQL
      • CTE
      • JOIN
    • Oracle
    • MSSQL 操作
      • 新增使用者
      • SQL 指令
      • Sequence
    • 差異比較
    • MyBatis
    • Workbench 操作
    • SQL Injection
  • 版本控制
    • Gitlab
      • sign up
      • sign in
      • add project
      • add members
    • SourceGit
      • install
    • SmartGit
      • install
      • operate
      • git 操作雜記
    • TortoiseGit
    • Git
    • TFS
    • SVN
  • Test
    • 軟體測試原則
    • 演算法
    • XMind
      • install
    • Jenkins
      • 建置
    • HTTPie
    • Postman
    • 測試驅動開發
    • 撰寫測試的觀念
    • 測試框架
    • IoC & DI
    • 隔絕相依性的方式
    • JUnit
    • NUnit
    • 習慣
    • 虛設常式
  • Angular
    • hello world
    • ng-options
    • ES6
    • Build & Conponect
    • HttpClient
    • 部署
  • ASP.NET Web Form
    • Chapter 2
      • 2-1
        • 小東西
    • 略過請求驗證
  • Go
Powered by GitBook
On this page

Was this helpful?

Last updated 5 years ago

Was this helpful?

API:()

前情提要

需要先申請TGOS MAP API KEY

可以申請 domain or ip ,一個KEY可以填五個值

TGOS 地圖座標系統

參考資料:()

在初始化地圖時,需要先設定座標系統。

EPSG3826 TWD97 坐標系統(台灣)。 EPSG3857 Google 坐標系統。 EPSG3825 TWD97 坐標系統(澎湖)。

經度、緯度的順序和Google Map相反

例如:

Google Map

TGOS

正式開始

總範例

設定地圖

HTML

JS

設定marker

清除 marker

和Google Map 的方式相同

清除單個 marker

消除全部 markers

設定InfoWindows

參考資料:()

參考資料:()

<script type="text/javascript">

        var messageBox;                    //訊息視窗物件  

        var pMap;                      //初始化地圖物件

        //------------------------------須自行修改的參數,包含點位坐標,訊息視窗內容及圖示檔案來源設定------------------------------

        var infotext = '<B>abc</B><br>高雄市前鎮區民權二路8號18樓';         //地標名稱及訊息視窗內容

        //var markerPoint = new TGOS.TGPoint(179044.964, 2500735.827);                              //地標坐標位置

        var markerPoint = new TGOS.TGPoint(120.290602, 22.627883); 
        var imgUrl = "http://api.tgos.tw/TGOS_API/images/marker2.png";         //標記點圖示來源

        //------------------------------若網頁介面依照範例網頁的預設設定,以下程式碼可不修改---------------------------------------

        function InitWnd()

        {

            //------------------初始化地圖--------------------

            var pOMap = document.getElementById("OMap");

            var mapOptiions = {

                scaleControl: false,                //不顯示比例尺

                navigationControl: true,     //顯示地圖縮放控制項

                navigationControlOptions: {        //設定地圖縮放控制項

                    controlPosition: TGOS.TGControlPosition.TOP_LEFT,  //控制項位置

                    navigationControlStyle: TGOS.TGNavigationControlStyle.SMALL         //控制項樣式

                },

                mapTypeControl: false                   //不顯示地圖類型控制項

            };

            pMap = new TGOS.TGOnlineMap(pOMap, TGOS.TGCoordSys.EPSG3857, mapOptiions);    //建立地圖,選擇TWD97坐標

            pMap.setZoom(11);                                   //初始地圖縮放層級

            pMap.setCenter(markerPoint);   //初始地圖中心點

            //------------------建立標記點---------------------

            var markerImg = new TGOS.TGImage(imgUrl, new TGOS.TGSize(38, 33), new TGOS.TGPoint(0, 0), new TGOS.TGPoint(10, 33));       //設定標記點圖片及尺寸大小

            var pTGMarker = new TGOS.TGMarker(pMap, markerPoint,'', markerImg); //建立機關單位標記點

            //-----------------建立訊息視窗--------------------

            var InfoWindowOptions = {

                maxWidth:4000,       //訊息視窗的最大寬度

                pixelOffset: new TGOS.TGSize(5, -30),         //InfoWindow起始位置的偏移量, 使用TGSize設定, 向右X為正, 向上Y為負 

                zIndex:99                                //視窗堆疊順序

            };                                       

            messageBox = new TGOS.TGInfoWindow(infotext, markerPoint, InfoWindowOptions);          //建立訊息視窗                                                                  

            TGOS.TGEvent.addListener(pTGMarker, "mouseover", openInfoWindow);   //滑鼠監聽事件--開啟訊息視窗

            TGOS.TGEvent.addListener(pTGMarker, "mouseout", closeInfoWindow);     //滑鼠監聽事件--關閉訊息視窗

        }

        function openInfoWindow() {      //開啟訊息視窗函式

            messageBox.open(pMap);

        }

        function closeInfoWindow() {      //關閉訊息視窗函式

            messageBox.close();

        }

        $(document).ready(function(){
            InitWnd();
        });

    </script>

    <div id="OMap" style="position:absolute; top:5px; left:5px; width:495px; height:400px; border:1px solid #000000;"></div>
<div id=\"map_canvas\" Class=\"GoogleMap\" style=\"width: {0}px; height: {1}px\"></div>
var latlng = new TGOS.TGPoint(118.375047, 24.453842);
var mapOptions = { scaleControl:false,
        navigationControl: true,
        navigationControlOptions: {
        controlPosition: TGOS.TGControlPosition.BOTTOM_RIGHT,  //控制項位置
    navigationControlStyle: TGOS.TGNavigationControlStyle.MEDIUM         //控制項樣式 
        },
        mapTypeControl: false");
};
var map1 = new TGOS.TGOnlineMap(document.getElementById(\"map_canvas\"), TGOS.TGCoordSys.EPSG3857, mapOptions);
map1.setZoom(12);
map1.setCenter(latlng);
var markerImg = new TGOS.TGImage(sIcon, new TGOS.TGSize(23, 31), new TGOS.TGPoint(0, 0), new TGOS.TGPoint(23, 31));
var markerPoint = new TGOS.TGPoint(lang, lat);
var marker = new TGOS.TGMarker(map1, markerPoint,'', markerImg);
 marker.setMap(null);
for (i in allMarkers) {
    allMarkers[i].setMap(null);");
}
var infoContent ='<div class=\"InfoBlock\">
    <div>
        <a href="sUrl"> stitle </a>
    </div>
</div>');

var infoWindowOptions = {    
    pixelOffset: new TGOS.TGSize(0, -31)
};

var infowindow = new TGOS.TGInfoWindow(infoContent, markerPoint, infoWindowOptions);


TGOS.TGEvent.addListener(marker, 'mouseover', function () { 
    for (i in allMarkers) {
        infowindows[i].close();
    }
    InfoWindowOpen(infowindow,marker,map);
});
  1. 前端
  2. JS

TGOS

PreviousCKEditorNextJSON
  • 前情提要
  • TGOS 地圖座標系統
  • 經度、緯度的順序和Google Map相反
  • 正式開始
  • 總範例
  • 設定地圖
  • 設定marker
  • 清除 marker
  • 設定InfoWindows
new TGOS.TGOnlineMap(pOMap, TGOS.TGCoordSys.EPSG3857, mapOptiions);
new google.maps.LatLng(24.453842, 118.375047);
new TGOS.TGPoint(120.290602, 22.627883);
https://api.tgos.tw/TGOS_MAP_API/docs/site/web/Reference/webapi
https://api.tgos.tw/TGOS_MAP_API/docs/site/web/Reference/webapi#tgcoordsys
https://api.tgos.tw/TGOS_MAP_API/docs/site/web/LiteInit
https://api.tgos.tw/TGOS_MAP_API/docs/site/web/Reference/webapi#tgonlinemap_class
https://api.tgos.tw/TGOS_MAP_API/docs/site/web/Reference/webapi#TGMarker_class
https://api.tgos.tw/TGOS_MAP_API/docs/site/web/ComplexLocate
https://api.tgos.tw/TGOS_MAP_API/docs/site/web/Reference/webapi#tginfowindow_class