diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac5b47c..f7ad3c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,6 +21,14 @@ jobs: - name: Checkout uses: actions/checkout@v5 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Validate camera sync script + run: node --check scripts/sync-cameras.mjs + - name: Setup PHP uses: shivammathur/setup-php@v2 with: diff --git a/.github/workflows/sync-cameras.yml b/.github/workflows/sync-cameras.yml new file mode 100644 index 0000000..375361e --- /dev/null +++ b/.github/workflows/sync-cameras.yml @@ -0,0 +1,89 @@ +name: Sync camera data + +on: + schedule: + - cron: '17 */6 * * *' + workflow_dispatch: + inputs: + force_geocode: + description: Re-run VietMap reverse geocoding for every camera with coordinates + required: false + default: false + type: boolean + +permissions: + contents: write + pull-requests: write + +concurrency: + group: camera-data-sync + cancel-in-progress: false + +jobs: + sync: + runs-on: ubuntu-latest + + steps: + - name: Checkout develop + uses: actions/checkout@v5 + with: + ref: develop + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Validate sync script + run: node --check scripts/sync-cameras.mjs + + - name: Sync source coordinates and VietMap addresses + env: + VIETMAP_API_KEY: ${{ secrets.VIETMAP_API_KEY }} + HCM_TRAFFIC_COOKIE: ${{ secrets.HCM_TRAFFIC_COOKIE }} + run: | + args=() + if [[ "${{ github.event_name }}" == "workflow_dispatch" && "${{ inputs.force_geocode }}" == "true" ]]; then + args+=(--force-geocode) + fi + node scripts/sync-cameras.mjs "${args[@]}" + + - name: Detect data changes + id: changes + run: | + if git diff --quiet -- data-camera.json; then + echo "changed=false" >> "$GITHUB_OUTPUT" + echo "No camera data changes." + else + echo "changed=true" >> "$GITHUB_OUTPUT" + git diff --stat -- data-camera.json + fi + + - name: Create or update sync pull request + if: steps.changes.outputs.changed == 'true' + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + BRANCH="data/auto-sync-cameras" + + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git fetch origin "$BRANCH:refs/remotes/origin/$BRANCH" || true + git checkout -B "$BRANCH" + git add data-camera.json + git commit -m "data: sync camera locations" + git push --force-with-lease origin "HEAD:$BRANCH" + + existing_pr="$(gh pr list --repo "$GITHUB_REPOSITORY" --base develop --head "$BRANCH" --state open --json url --jq '.[0].url // ""')" + if [[ -n "$existing_pr" ]]; then + echo "Updated existing PR: $existing_pr" + else + gh pr create \ + --repo "$GITHUB_REPOSITORY" \ + --base develop \ + --head "$BRANCH" \ + --title "data: sync traffic camera locations" \ + --body "Automated camera data sync from the HCMC traffic source. Adds new published cameras, refreshes source coordinates, and fills missing address fields through VietMap when VIETMAP_API_KEY is configured. Existing source-missing cameras are retained for manual review." + fi diff --git a/README.md b/README.md index ae4bf31..78e02b3 100644 --- a/README.md +++ b/README.md @@ -74,3 +74,35 @@ The project exposes crawlable resources in addition to the JavaScript camera dir - `manifest.webmanifest` and `favicon.svg` — app/site identity metadata. The homepage and detail pages include canonical URLs, social metadata and Schema.org JSON-LD. + +## Đồng bộ tọa độ & địa chỉ + +`data-camera.json` lưu tọa độ gốc từ `Location.Shape` của nguồn camera TP.HCM: + +```json +{ + "Latitude": 10.7918902432446, + "Longitude": 106.691054105759 +} +``` + +`scripts/sync-cameras.mjs` thực hiện: + +1. Gọi `SearchQuery` với `Publish:true`. +2. Parse AjaxPro `DataTable` và lấy `POINT(longitude latitude)`. +3. Thêm camera mới và cập nhật tọa độ nguồn. +4. Giữ lại camera cũ không còn xuất hiện ở nguồn để review thủ công. +5. Nếu có `VIETMAP_API_KEY`, gọi VietMap Reverse v4 (`display_type=6`) để bổ sung `Address`, `Ward`, `District` và `Province`. +6. Chỉ reverse-geocode camera chưa có địa chỉ hoặc camera có tọa độ thay đổi. + +GitHub Actions chạy mỗi 6 giờ và chỉ tạo/update PR `data/auto-sync-cameras` khi `data-camera.json` thực sự thay đổi. + +### Repository secrets + +Vào **Settings → Secrets and variables → Actions** và thêm: + +- `VIETMAP_API_KEY` — API key VietMap. Không được commit key vào repository. +- `HCM_TRAFFIC_COOKIE` — tùy chọn; chỉ cần nếu endpoint nguồn bắt buộc session/cookie khi chạy từ GitHub Actions. + +Có thể chạy tay workflow **Sync camera data** và bật `force_geocode` khi muốn reverse-geocode lại toàn bộ camera có tọa độ. + diff --git a/camera.php b/camera.php index 5b66527..925bff4 100644 --- a/camera.php +++ b/camera.php @@ -50,13 +50,24 @@ function cameraDistrict(array $camera): string $canonical = BASE_URL . '/'; $cameraName = 'Không tìm thấy camera'; $district = 'TP.HCM'; + $address = ''; + $ward = ''; + $province = 'Hồ Chí Minh'; + $latitude = null; + $longitude = null; $imageUrl = ''; $related = []; } else { $cameraName = trim((string) $camera['CamName']); $district = cameraDistrict($camera); + $address = trim((string) ($camera['Address'] ?? '')); + $ward = trim((string) ($camera['Ward'] ?? '')); + $province = trim((string) ($camera['Province'] ?? 'Hồ Chí Minh')); + $latitude = isset($camera['Latitude']) && is_numeric($camera['Latitude']) ? (float) $camera['Latitude'] : null; + $longitude = isset($camera['Longitude']) && is_numeric($camera['Longitude']) ? (float) $camera['Longitude'] : null; + $locationText = $address !== '' ? $address : $district . ', TP.HCM'; $pageTitle = 'Camera ' . $cameraName . ' – ' . $district . ' | TP.HCM'; - $pageDescription = 'Xem camera giao thông ' . $cameraName . ' tại ' . $district . ', TP.HCM. Hình ảnh camera được cập nhật tự động để tiện theo dõi tình hình giao thông.'; + $pageDescription = 'Xem camera giao thông ' . $cameraName . ' tại ' . $locationText . '. Hình ảnh camera được cập nhật tự động để tiện theo dõi tình hình giao thông.'; $canonical = BASE_URL . '/camera.php?id=' . rawurlencode($cameraId); $imageUrl = BASE_URL . '/proxy.php?id=' . rawurlencode($cameraId); @@ -84,12 +95,20 @@ function cameraDistrict(array $camera): string 'about' => [ '@type' => 'Place', 'name' => $cameraName, - 'address' => [ + 'address' => array_filter([ '@type' => 'PostalAddress', - 'addressLocality' => 'Hồ Chí Minh', - 'addressRegion' => $district, + 'streetAddress' => $address, + 'addressLocality' => $ward !== '' ? $ward : $district, + 'addressRegion' => $province, 'addressCountry' => 'VN', - ], + ], static fn ($value): bool => $value !== ''), + ...($latitude !== null && $longitude !== null ? [ + 'geo' => [ + '@type' => 'GeoCoordinates', + 'latitude' => $latitude, + 'longitude' => $longitude, + ], + ] : []), ], 'primaryImageOfPage' => [ '@type' => 'ImageObject', @@ -224,6 +243,12 @@ function cameraDistrict(array $camera): string .content { padding: clamp(18px, 4vw, 30px); } .eyebrow { color: var(--primary); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; } h1 { margin: 7px 0 10px; font-size: clamp(1.45rem, 4vw, 2.15rem); line-height: 1.25; } + .address-line { + margin: -4px 0 18px; + color: var(--muted); + line-height: 1.6; + } + .address-line strong { color: var(--text); } .lead { margin: 0; color: var(--muted); line-height: 1.7; } .meta { display: flex; @@ -297,6 +322,9 @@ function cameraDistrict(array $camera): string
Camera giao thông TP.HCM

+ +

Địa chỉ:

+
Mã camera: diff --git a/data-camera.json b/data-camera.json index 8606d0a..9f78fec 100644 --- a/data-camera.json +++ b/data-camera.json @@ -4,2051 +4,2637 @@ "CamName": "Quốc Lộ 1 - Khu Chế Xuất Linh Trung", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/586e28a0f9fab7001111b0b3", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.872081942303, + "Longitude": 106.768741607666 }, { "CamId": "5a8241105058170011f6eaa6", "CamName": "Đinh Tiên Hoàng - Võ Thị Sáu 2", "Disctrict": "Quận 3", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7919218604929, + "Longitude": 106.695785522461 }, { "CamId": "63ae7a50bfd3d90017e8f2b2", "CamName": "Ba Tháng Hai - Sư Vạn Hánh", "Disctrict": "Quận 10", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7697784337206, + "Longitude": 106.670830249786 }, { "CamId": "63b65fd8bfd3d90017eaa461", "CamName": "TTH 237", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7956526724414, + "Longitude": 106.696085929871 }, { "CamId": "63b54c51bfd3d90017ea7aa0", "CamName": "TTH 223", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8266882798502, + "Longitude": 106.760228276253 }, { "CamId": "587470c2b807da0011e33ce4", "CamName": "TTH 40.2", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587470c2b807da0011e33ce4", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7892027649838, + "Longitude": 106.715097427368 }, { "CamId": "6623e5d66f998a001b25235a", "CamName": "TTH 263", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.783880433226, + "Longitude": 106.670325994492 }, { "CamId": "662b81eb1afb9c00172dcc85", "CamName": "TTH 387", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7882331590867, + "Longitude": 106.703939437866 }, { "CamId": "662b82da1afb9c00172dce94", "CamName": "TTH 390", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7893713917772, + "Longitude": 106.690120697021 }, { "CamId": "5deb576d1dc17d7c5515ad1a", "CamName": "ITS 8.51", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.779127, + "Longitude": 106.697417 }, { "CamId": "5deb576d1dc17d7c5515acf4", "CamName": "ITS 1.3-1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.767465, + "Longitude": 106.674156 }, { "CamId": "5deb576d1dc17d7c5515ad08", "CamName": "ITS 6.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8041364085074, + "Longitude": 106.637651324272 }, { "CamId": "662b4f7e1afb9c00172d872e", "CamName": "TTH 338", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7480971664479, + "Longitude": 106.635103225708 }, { "CamId": "5deb576d1dc17d7c5515ad13", "CamName": "ITS 7.52", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.775708, + "Longitude": 106.700359 }, { "CamId": "5deb576d1dc17d7c5515ad05", "CamName": "ITS 4.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.790705, + "Longitude": 106.697491 }, { "CamId": "6623e3566f998a001b25226d", "CamName": "TTH 256", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.786135848679, + "Longitude": 106.680936813354 }, { "CamId": "5ad0679598d8fc001102e274", "CamName": "TTH 105.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8452343413582, + "Longitude": 106.786707043648 }, { "CamId": "5deb576d1dc17d7c5515ad01", "CamName": "ITS 3.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7878590168447, + "Longitude": 106.691815853119 }, { "CamId": "662b4e201afb9c00172d85f9", "CamName": "TTH 332", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7537258027461, + "Longitude": 106.653825044632 }, { "CamId": "5874769eb807da0011e33cec", "CamName": "TTH 38.3", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5874769eb807da0011e33cec", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8001053464053, + "Longitude": 106.657757163048 }, { "CamId": "662b4de41afb9c00172d85c5", "CamName": "TTH 331", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7509852813336, + "Longitude": 106.658996343613 }, { "CamId": "662b82a61afb9c00172dcdfd", "CamName": "TTH 389", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7916478442304, + "Longitude": 106.689380407333 }, { "CamId": "62da3e620637a10017d70720", "CamName": "TTH 268.2", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8456979781692, + "Longitude": 106.718176603317 }, { "CamId": "5deb576d1dc17d7c5515ad17", "CamName": "ITS 8.5", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.782987, + "Longitude": 106.698076 }, { "CamId": "5deb576d1dc17d7c5515acfd", "CamName": "ITS 2.7", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7793063144528, + "Longitude": 106.682181358337 }, { "CamId": "65e0552f6b18080018db6647", "CamName": "TTH 251", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7717072215258, + "Longitude": 106.697888374329 }, { "CamId": "662b81721afb9c00172dcc44", "CamName": "TTH 385", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7927439077816, + "Longitude": 106.696075201035 }, { "CamId": "5deb576d1dc17d7c5515acf9", "CamName": "ITS 2.1-1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.777768, + "Longitude": 106.68202 }, { "CamId": "62da3e840637a10017d7073d", "CamName": "TTH 268.3", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8451078948305, + "Longitude": 106.71789765358 }, { "CamId": "5deb576d1dc17d7c5515acf3", "CamName": "ITS 1.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.768198, + "Longitude": 106.668459 }, { "CamId": "5deb576d1dc17d7c5515ad23", "CamName": "ITS 10.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.763649, + "Longitude": 106.659903 }, { "CamId": "662b5be91afb9c00172d939b", "CamName": "TTH 371", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8082464553192, + "Longitude": 106.618773937225 }, { "CamId": "63b54996bfd3d90017ea781a", "CamName": "TTH 214", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8167087590452, + "Longitude": 106.774277687073 }, { "CamId": "63ae76afbfd3d90017e8f106", "CamName": "TTH 184", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7579524811918, + "Longitude": 106.699776649475 }, { "CamId": "6623ec826f998a001b252686", "CamName": "TTH 279", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8419361769392, + "Longitude": 106.676613092422 }, { "CamId": "5deb576d1dc17d7c5515acfb", "CamName": "ITS 2.6", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7801863634439, + "Longitude": 106.684262752533 }, { "CamId": "63ae76ddbfd3d90017e8f11b", "CamName": "TTH 185", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7596389198989, + "Longitude": 106.698489189148 }, { "CamId": "5a8250cc5058170011f6eaba", "CamName": "TTH 105.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8445494220268, + "Longitude": 106.78128361702 }, { "CamId": "662b83381afb9c00172dcf88", "CamName": "TTH 392", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7846919631639, + "Longitude": 106.695957183838 }, { "CamId": "63b549b8bfd3d90017ea782c", "CamName": "TTH 215", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8244331690453, + "Longitude": 106.769192218781 }, { "CamId": "6623f3436f998a001b252863", "CamName": "TTH 297.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8664976715355, + "Longitude": 106.761660575867 }, { "CamId": "662b85031afb9c00172dd0dc", "CamName": "TTH 398", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.772307988975, + "Longitude": 106.698939800262 }, { "CamId": "6623ecc16f998a001b25269e", "CamName": "TTH 280", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.838553676621, + "Longitude": 106.675518751144 }, { "CamId": "662b81a31afb9c00172dcc65", "CamName": "TTH 386", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7805394362678, + "Longitude": 106.693907976151 }, { "CamId": "63ae7709bfd3d90017e8f135", "CamName": "TTH 186.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7632541910898, + "Longitude": 106.703810691834 }, { "CamId": "63ae768dbfd3d90017e8f0f1", "CamName": "TTH 183.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7560025246799, + "Longitude": 106.701278686523 }, { "CamId": "58746371b807da0011e33cd1", "CamName": "TTH 21.7", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58746371b807da0011e33cd1", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8696796650458, + "Longitude": 106.775951385498 }, { "CamId": "63b65f33bfd3d90017eaa405", "CamName": "TTH 233.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7887970063747, + "Longitude": 106.716953516006 }, { "CamId": "5a606a0f8576340017d0661e", "CamName": "TTH 44.7", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8200809679719, + "Longitude": 106.704116463661 }, { "CamId": "5a824dc05058170011f6eab2", "CamName": "TTH 115.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8366042431825, + "Longitude": 106.658180952072 }, { "CamId": "662b830e1afb9c00172dcf50", "CamName": "TTH 391", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7743421575788, + "Longitude": 106.688017845154 }, { "CamId": "662b57711afb9c00172d90a7", "CamName": "TTH 358", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8017125083701, + "Longitude": 106.649898290634 }, { "CamId": "5d8cdc9d766c880017188970", "CamName": "TTH 166", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7747690150491, + "Longitude": 106.647881269455 }, { "CamId": "6623e7b76f998a001b25242d", "CamName": "TTH 269", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8083518403949, + "Longitude": 106.709260940552 }, { "CamId": "63ae7be0bfd3d90017e8f3a8", "CamName": "TTH 201.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7621527500863, + "Longitude": 106.657199263573 }, { "CamId": "63b3c9bfbfd3d90017e9b039", "CamName": "TTH 208", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8418834903115, + "Longitude": 106.746854782104 }, { "CamId": "5d8cdc1d766c88001718896c", "CamName": "TTH 164", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8076721060064, + "Longitude": 106.664478778839 }, { "CamId": "587478d8b807da0011e33cf3", "CamName": "TTH 28.1", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587478d8b807da0011e33cf3", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7928387592472, + "Longitude": 106.653594374657 }, { "CamId": "58d7bbf2c1e33c00112b3216", "CamName": "TTH 21.46", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58d7bbf2c1e33c00112b3216", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6656266937569, + "Longitude": 106.570794582367 }, { "CamId": "5d8cdd26766c880017188974", "CamName": "TTH 168", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7688351149688, + "Longitude": 106.652623414993 }, { "CamId": "6623efc26f998a001b25277f", "CamName": "TTH 288", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8675723883698, + "Longitude": 106.615512371063 }, { "CamId": "58ad7291bd82540010390bf9", "CamName": "TTH 44.3", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58ad7291bd82540010390bf9", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8038413260585, + "Longitude": 106.687197089195 }, { "CamId": "587c8183b807da0011e33d3f", "CamName": "TTH 27.2", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587c8183b807da0011e33d3f", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8013067666529, + "Longitude": 106.662268638611 }, { "CamId": "5deb576d1dc17d7c5515acf2", "CamName": "ITS 1.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7765712954739, + "Longitude": 106.683694124222 }, { "CamId": "662b83ff1afb9c00172dcffb", "CamName": "TTH 394", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7805078178228, + "Longitude": 106.698188781738 }, { "CamId": "662b84c11afb9c00172dd0b5", "CamName": "TTH 397", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7817830924671, + "Longitude": 106.696933507919 }, { "CamId": "56de42f611f398ec0c4812a1", "CamName": "TTH 22.3", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c4812a1", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.769926, + "Longitude": 106.7747069 }, { "CamId": "63b54fe4bfd3d90017ea7ca2", "CamName": "TTH 231.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7681342114135, + "Longitude": 106.773290634155 }, { "CamId": "6318283cc9eae60017a19f0c", "CamName": "TTH 176.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7866101161314, + "Longitude": 106.701568365097 }, { "CamId": "662b5b481afb9c00172d92a8", "CamName": "TTH 368", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7990461956223, + "Longitude": 106.641937494278 }, { "CamId": "58df4adedc195800111e04b4", "CamName": "TTH 26.2", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58df4adedc195800111e04b4", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8049689609963, + "Longitude": 106.666592359543 }, { "CamId": "662b57471afb9c00172d9095", "CamName": "TTH 357", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8023975256098, + "Longitude": 106.641572713852 }, { "CamId": "58aff2c6bd82540010390c55", "CamName": "TTH 21.45", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58aff2c6bd82540010390c55", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6647884855642, + "Longitude": 106.569807529449 }, { "CamId": "6623e43e6f998a001b2522cb", "CamName": "TTH 259", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7748059039379, + "Longitude": 106.690624952316 }, { "CamId": "662b85481afb9c00172dd0f1", "CamName": "TTH 399", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7687191761474, + "Longitude": 106.703091859818 }, { "CamId": "6623ef776f998a001b252768", "CamName": "TTH 287", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8616719345273, + "Longitude": 106.602745056152 }, { "CamId": "59d34ce302eb490011a0a616", "CamName": "TTH 33.7", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8104489957249, + "Longitude": 106.7762196064 }, { "CamId": "662b80721afb9c00172dcb28", "CamName": "TTH 381", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.788633648858, + "Longitude": 106.69774889946 }, { "CamId": "63ae7893bfd3d90017e8f1e1", "CamName": "TTH 189", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7643450880206, + "Longitude": 106.707345843315 }, { "CamId": "5990ffdbbec3b90016d2ad2d", "CamName": "TTH 60.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7705847317646, + "Longitude": 106.713402271271 }, { "CamId": "586e25e1f9fab7001111b0ae", "CamName": "TTH 28.4", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/586e25e1f9fab7001111b0ae", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8037728247342, + "Longitude": 106.635918617249 }, { "CamId": "58744e3eb807da0011e33cb7", "CamName": "TTH 42.2", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58744e3eb807da0011e33cb7", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7444131987789, + "Longitude": 106.688919067383 }, { "CamId": "58744e97b807da0011e33cb9", "CamName": "TTH 42.3", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58744e97b807da0011e33cb9", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7469851294422, + "Longitude": 106.689042448998 }, { "CamId": "662b4f411afb9c00172d86fc", "CamName": "TTH 337", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7497836602495, + "Longitude": 106.642361283302 }, { "CamId": "587463bab807da0011e33cd3", "CamName": "TTH 21.8", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587463bab807da0011e33cd3", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8747792130109, + "Longitude": 106.748399734497 }, { "CamId": "5ad0644698d8fc001102e26b", "CamName": "TTH 125.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.82640375746, + "Longitude": 106.806828975677 }, { "CamId": "63b65e6abfd3d90017eaa361", "CamName": "TTH 232", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7903304548658, + "Longitude": 106.754236221313 }, { "CamId": "631828cac9eae60017a19f50", "CamName": "TTH 177", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7887074232314, + "Longitude": 106.703531742096 }, { "CamId": "662a8ddd1afb9c00172d2a0f", "CamName": "TTH 323.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.752102573838, + "Longitude": 106.725064516068 }, { "CamId": "662a8e121afb9c00172d2a3f", "CamName": "TTH 323.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7554228054478, + "Longitude": 106.723868250847 }, { "CamId": "665861d864f11e00173c73a9", "CamName": "TTH 309", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7554702370632, + "Longitude": 106.723374724388 }, { "CamId": "66b1c3fa779f740018674146", "CamName": "TTH 418", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7991305062692, + "Longitude": 106.723707318306 }, { "CamId": "66b1c398779f7400186740e3", "CamName": "TTH 416", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7601975506409, + "Longitude": 106.653256416321 }, { "CamId": "66b1c4a2779f74001867418c", "CamName": "TTH 420", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7971175831128, + "Longitude": 106.664553880692 }, { "CamId": "662b4e8e1afb9c00172d865c", "CamName": "TTH 334", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7584267930315, + "Longitude": 106.661485433578 }, { "CamId": "662b811d1afb9c00172dcc1d", "CamName": "TTH 384", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7650143803183, + "Longitude": 106.692867279053 }, { "CamId": "5deb576d1dc17d7c5515ad02", "CamName": "ITS 3.4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7843441648872, + "Longitude": 106.691552996635 }, { "CamId": "662b85bf1afb9c00172dd149", "CamName": "TTH 401", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7709694352995, + "Longitude": 106.701128482819 }, { "CamId": "5d8cd372766c880017188940", "CamName": "TTH 142", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7550275416962, + "Longitude": 106.643267869949 }, { "CamId": "662b872d1afb9c00172dd36a", "CamName": "TTH 407", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7878115903301, + "Longitude": 106.677889823914 }, { "CamId": "6623f0576f998a001b2527ac", "CamName": "TTH 290", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7859250629045, + "Longitude": 106.641583442688 }, { "CamId": "649da77ea6068200171a6dd4", "CamName": "TTH 248", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.775301268578, + "Longitude": 106.70676112175 }, { "CamId": "63ae7a26bfd3d90017e8f29a", "CamName": "TTH 196.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7711380723106, + "Longitude": 106.672922372818 }, { "CamId": "5a8257e25058170011f6eacd", "CamName": "TTH 111", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8700853140978, + "Longitude": 106.814097762108 }, { "CamId": "583f958161cfea0012cf68f5", "CamName": "TTH 22.6", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/583f958161cfea0012cf68f5", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.7660209509751, + "Longitude": 106.779872775078 }, { "CamId": "63ae798abfd3d90017e8f255", "CamName": "TTH 194", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7869104851311, + "Longitude": 106.664623618126 }, { "CamId": "649da419a6068200171a6c90", "CamName": "TTH 229", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.759206770879, + "Longitude": 106.665605306625 }, { "CamId": "6623e9e96f998a001b2525ce", "CamName": "TTH 274", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7958634513952, + "Longitude": 106.681923866272 }, { "CamId": "662a8cfe1afb9c00172d296e", "CamName": "TTH 321", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7433433113335, + "Longitude": 106.729581356049 }, { "CamId": "5b0e1faacddcc80011ceb449", "CamName": "TTH 175.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8012804197692, + "Longitude": 106.711969971657 }, { "CamId": "587ef2e4b807da0011e33d57", "CamName": "TTH 34.7", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587ef2e4b807da0011e33d57", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7976866831738, + "Longitude": 106.672310829163 }, { "CamId": "63b54a9ebfd3d90017ea7911", "CamName": "TTH 219", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8428107736029, + "Longitude": 106.828694343567 }, { "CamId": "63b66035bfd3d90017eaa48e", "CamName": "TTH 239", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8053483512381, + "Longitude": 106.695023775101 }, { "CamId": "63b66051bfd3d90017eaa4a3", "CamName": "TTH 240", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8112288386645, + "Longitude": 106.695485115051 }, { "CamId": "63195512c9eae60017a1c279", "CamName": "TTH 178.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7663399395947, + "Longitude": 106.688103715542 }, { "CamId": "58b5528e17139d0010f35d52", "CamName": "TTH 33.4", "Disctrict": "Quận 9", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58b5528e17139d0010f35d52", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8719449708741, + "Longitude": 106.807773113251 }, { "CamId": "6623e5066f998a001b252317", "CamName": "TTH 261", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7712645500069, + "Longitude": 106.687191724777 }, { "CamId": "587ee7d7b807da0011e33d55", "CamName": "TTH 44.2", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587ee7d7b807da0011e33d55", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8031879281753, + "Longitude": 106.694852113724 }, { "CamId": "662a8cc51afb9c00172d2938", "CamName": "TTH 320", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7307995207108, + "Longitude": 106.732006072998 }, { "CamId": "5a8278f35058170011f6eaed", "CamName": "TTH 122.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7284488196731, + "Longitude": 106.677117347717 }, { "CamId": "63195556c9eae60017a1c2ba", "CamName": "TTH 178.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7668302628021, + "Longitude": 106.688015724794 }, { "CamId": "63ae7a9cbfd3d90017e8f303", "CamName": "TTH 199", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7727295794518, + "Longitude": 106.679091453552 }, { "CamId": "5a8256315058170011f6eac9", "CamName": "TTH 109.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8133575888573, + "Longitude": 106.709566712379 }, { "CamId": "5d8cda6a766c880017188960", "CamName": "TTH 158", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8411932946322, + "Longitude": 106.743823885918 }, { "CamId": "5d8cd9cb766c88001718895c", "CamName": "TTH 156", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8536007677866, + "Longitude": 106.751317977905 }, { "CamId": "662a8c931afb9c00172d2901", "CamName": "TTH 319", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7143336880567, + "Longitude": 106.736941337585 }, { "CamId": "58746536b807da0011e33cdc", "CamName": "TTH 21.12", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58746536b807da0011e33cdc", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8659497751896, + "Longitude": 106.723519563675 }, { "CamId": "63ae75f9bfd3d90017e8f097", "CamName": "TTH 181.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.769072262419, + "Longitude": 106.683275699615 }, { "CamId": "63bd1f48bfd3d90017ec3d19", "CamName": "TTH 246", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7375247437985, + "Longitude": 106.730353832245 }, { "CamId": "5d8cd653766c88001718894c", "CamName": "TTH 148", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8509770648006, + "Longitude": 106.75500869751 }, { "CamId": "5a8254b05058170011f6eac3", "CamName": "TTH 108.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.809674419948, + "Longitude": 106.712254285812 }, { "CamId": "6623ed396f998a001b2526b8", "CamName": "TTH 281", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.820344420197, + "Longitude": 106.683468818665 }, { "CamId": "587c8d97b807da0011e33d49", "CamName": "TTH 34.4", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587c8d97b807da0011e33d49", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8001000770077, + "Longitude": 106.669188737869 }, { "CamId": "63ae7af4bfd3d90017e8f32c", "CamName": "TTH 200.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7636125538021, + "Longitude": 106.659564971924 }, { "CamId": "662b571d1afb9c00172d9083", "CamName": "TTH 356", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7892923479795, + "Longitude": 106.660181879997 }, { "CamId": "6623eec96f998a001b25273b", "CamName": "TTH 285", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8346442594662, + "Longitude": 106.664371490479 }, { "CamId": "5a82628e5058170011f6eadb", "CamName": "TTH 121.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7199365991593, + "Longitude": 106.655665040016 }, { "CamId": "662b50571afb9c00172d87df", "CamName": "TTH 341", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7375142028136, + "Longitude": 106.656239032745 }, { "CamId": "662b857b1afb9c00172dd106", "CamName": "TTH 400", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7920852162229, + "Longitude": 106.699739098549 }, { "CamId": "58af9a07bd82540010390c3b", "CamName": "TTH 36.3", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58af9a07bd82540010390c3b", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7852927046947, + "Longitude": 106.703263521194 }, { "CamId": "58af994abd82540010390c37", "CamName": "TTH 36.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7826315159924, + "Longitude": 106.706235408783 }, { "CamId": "5deb576d1dc17d7c5515ad15", "CamName": "ITS 8.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.781944, + "Longitude": 106.704602 }, { "CamId": "63b54cffbfd3d90017ea7ad0", "CamName": "TTH 225", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8730512767713, + "Longitude": 106.732392311096 }, { "CamId": "63b54d5abfd3d90017ea7afe", "CamName": "TTH 227", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8266672041268, + "Longitude": 106.755888462067 }, { "CamId": "662b843d1afb9c00172dd02d", "CamName": "TTH 395", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7771984022141, + "Longitude": 106.701825857162 }, { "CamId": "63b54c93bfd3d90017ea7ab8", "CamName": "TTH 224", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8589007882855, + "Longitude": 106.777850389481 }, { "CamId": "63ae7c53bfd3d90017e8f3d8", "CamName": "TTH 203.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7704951431996, + "Longitude": 106.658336520195 }, { "CamId": "5deb576d1dc17d7c5515ad06", "CamName": "ITS 4.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.788566, + "Longitude": 106.699558 }, { "CamId": "6623e6b86f998a001b2523b8", "CamName": "TTH 266", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7669642785384, + "Longitude": 106.676344871521 }, { "CamId": "58744fb0b807da0011e33cc0", "CamName": "TTH 43.2", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58744fb0b807da0011e33cc0", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7463895818732, + "Longitude": 106.669129729271 }, { "CamId": "58746314b807da0011e33cce", "CamName": "TTH 21.6", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58746314b807da0011e33cce", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8733304866588, + "Longitude": 106.765040159225 }, { "CamId": "6623ee176f998a001b25270c", "CamName": "TTH 283", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.829417573494, + "Longitude": 106.6819024086 }, { "CamId": "5d8cd2a3766c88001718893c", "CamName": "TTH 140", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7544425503934, + "Longitude": 106.642913818359 }, { "CamId": "583f926761cfea0012cf68f1", "CamName": "TTH 22.9", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/583f926761cfea0012cf68f1", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.7599709364081, + "Longitude": 106.786578297615 }, { "CamId": "5deb576d1dc17d7c5515ad09", "CamName": "ITS 6.51", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7964536316791, + "Longitude": 106.647017598152 }, { "CamId": "662a861e1afb9c00172d23ad", "CamName": "TTH 303", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6954843759884, + "Longitude": 106.718187332153 }, { "CamId": "662b57ec1afb9c00172d90e3", "CamName": "TTH 359", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8018284344744, + "Longitude": 106.64838552475 }, { "CamId": "58ad69c4bd82540010390be7", "CamName": "TTH 34.10", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58ad69c4bd82540010390be7", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7993096663153, + "Longitude": 106.680368185043 }, { "CamId": "58df5016dc195800111e04bd", "CamName": "TTH 26.6", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58df5016dc195800111e04bd", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8133259738659, + "Longitude": 106.668566465378 }, { "CamId": "662a8d821afb9c00172d29c8", "CamName": "TTH 322", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7381993660681, + "Longitude": 106.718316078186 }, { "CamId": "662a8eb41afb9c00172d2aba", "CamName": "TTH 324.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7379990877391, + "Longitude": 106.721824407578 }, { "CamId": "662a8e641afb9c00172d2a7e", "CamName": "TTH 324.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7379358419233, + "Longitude": 106.721234321594 }, { "CamId": "662a8f701afb9c00172d2b5e", "CamName": "TTH 327", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.739928078758, + "Longitude": 106.703596115112 }, { "CamId": "63b54d27bfd3d90017ea7ae5", "CamName": "TTH 226", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8581948267685, + "Longitude": 106.787774562836 }, { "CamId": "662b7f251afb9c00172dc8bc", "CamName": "TTH 377", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7767873576075, + "Longitude": 106.697995662689 }, { "CamId": "63b54a70bfd3d90017ea7862", "CamName": "TTH 218", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.830049838744, + "Longitude": 106.804490089417 }, { "CamId": "56f11ac33ac17b11001c504c", "CamName": "TTH 34.1", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56f11ac33ac17b11001c504c", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7996311002478, + "Longitude": 106.668410897255 }, { "CamId": "587464e2b807da0011e33cd9", "CamName": "TTH 21.11", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587464e2b807da0011e33cd9", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8699588780888, + "Longitude": 106.733132600784 }, { "CamId": "5a8279865058170011f6eaef", "CamName": "TTH 122.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7275738904052, + "Longitude": 106.677889823914 }, { "CamId": "5ad0621c98d8fc001102e268", "CamName": "TTH 101.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.779137682017, + "Longitude": 106.702335476875 }, { "CamId": "5a8254f25058170011f6eac5", "CamName": "TTH 108.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8102803807443, + "Longitude": 106.712415218353 }, { "CamId": "5a823d555058170011f6eaa2", "CamName": "TTH 101.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7791113331904, + "Longitude": 106.702115535736 }, { "CamId": "63b54bcdbfd3d90017ea7a82", "CamName": "TTH 222", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8960825794088, + "Longitude": 106.718090772629 }, { "CamId": "63ae73cebfd3d90017e8f00d", "CamName": "TTH 180.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7684240589462, + "Longitude": 106.684364676476 }, { "CamId": "662b867b1afb9c00172dd250", "CamName": "TTH 405", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7692988698081, + "Longitude": 106.696676015854 }, { "CamId": "6623e4b06f998a001b2522f1", "CamName": "TTH 260", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7703792050172, + "Longitude": 106.686387062073 }, { "CamId": "662b862a1afb9c00172dd1ff", "CamName": "TTH 403", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7711749616441, + "Longitude": 106.699524521828 }, { "CamId": "66b1c158779f740018673eb4", "CamName": "TTH 409", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7622528812529, + "Longitude": 106.676441431046 }, { "CamId": "56de42f611f398ec0c4812a0", "CamName": "TTH 22.5", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c4812a0", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.7627851568961, + "Longitude": 106.783590316772 }, { "CamId": "6623ea416f998a001b25260a", "CamName": "TTH 275", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7971913554037, + "Longitude": 106.681151390076 }, { "CamId": "662b5a9c1afb9c00172d9240", "CamName": "TTH 365", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7946620093783, + "Longitude": 106.650145053864 }, { "CamId": "63ae7a08bfd3d90017e8f285", "CamName": "TTH 196.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7710959130666, + "Longitude": 106.673265695572 }, { "CamId": "63ae7669bfd3d90017e8f0d9", "CamName": "TTH 183.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7528720275909, + "Longitude": 106.702179908752 }, { "CamId": "583f969161cfea0012cf68f7", "CamName": "TTH 22.7", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/583f969161cfea0012cf68f7", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.7646823693643, + "Longitude": 106.781423091888 }, { "CamId": "6623e3ea6f998a001b2522ae", "CamName": "TTH 258", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7700419300508, + "Longitude": 106.682138442993 }, { "CamId": "58746122b807da0011e33cc5", "CamName": "TTH 21.2", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58746122b807da0011e33cc5", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8672299545045, + "Longitude": 106.787940859795 }, { "CamId": "63ae7a74bfd3d90017e8f2c7", "CamName": "TTH 198", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7778940148849, + "Longitude": 106.665540933609 }, { "CamId": "66b1c3c2779f740018674125", "CamName": "TTH 417", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7459416028391, + "Longitude": 106.624095439911 }, { "CamId": "6623e2e16f998a001b252233", "CamName": "TTH 254", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7899088890498, + "Longitude": 106.689380407333 }, { "CamId": "6623f36e6f998a001b252878", "CamName": "TTH 297.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8663923069317, + "Longitude": 106.762282848358 }, { "CamId": "5d8cd4ee766c880017188946", "CamName": "TTH 145", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7918902432446, + "Longitude": 106.671452522278 }, { "CamId": "662b5bc31afb9c00172d92e2", "CamName": "TTH 370", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8093424582973, + "Longitude": 106.615083217621 }, { "CamId": "6623df636f998a001b251e92", "CamName": "TTH 253", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7839015119534, + "Longitude": 106.69704079628 }, { "CamId": "6623f3d66f998a001b252890", "CamName": "TTH 298", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8822808688795, + "Longitude": 106.769835948944 }, { "CamId": "56df81d8c062921100c143de", "CamName": "TTH 32.2", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df81d8c062921100c143de", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8491804998734, + "Longitude": 106.774009466171 }, { "CamId": "63ae7cfcbfd3d90017e8f422", "CamName": "TTH 205", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7890446772791, + "Longitude": 106.660680770874 }, { "CamId": "63ae7b3cbfd3d90017e8f34d", "CamName": "TTH 200.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7644610285251, + "Longitude": 106.659817099571 }, { "CamId": "63ae77bfbfd3d90017e8f18f", "CamName": "TTH 188.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.757040746338, + "Longitude": 106.717768907547 }, { "CamId": "63ae7759bfd3d90017e8f162", "CamName": "TTH 187.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7675070857977, + "Longitude": 106.706036925316 }, { "CamId": "63ae777cbfd3d90017e8f177", "CamName": "TTH 187.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7667745592657, + "Longitude": 106.706455349922 }, { "CamId": "585b2980c3f96200127dc502", "CamName": "TTH 37.2", "Disctrict": "Quận 7", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/585b2980c3f96200127dc502", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.755127675229, + "Longitude": 106.727993488312 }, { "CamId": "585b284ac3f96200127dc500", "CamName": "TTH 37.1", "Disctrict": "Quận 7", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/585b284ac3f96200127dc500", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7545321437295, + "Longitude": 106.727795004845 }, { "CamId": "662a881a1afb9c00172d2559", "CamName": "TTH 308", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7380517925754, + "Longitude": 106.61497592926 }, { "CamId": "662b5b271afb9c00172d9296", "CamName": "TTH 367", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7999419950356, + "Longitude": 106.640210151672 }, { "CamId": "63ae7727bfd3d90017e8f14a", "CamName": "TTH 186.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7635071530486, + "Longitude": 106.703719496727 }, { "CamId": "5a606dbc8576340017d0662b", "CamName": "TTH 40.4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7978184191454, + "Longitude": 106.721127033234 }, { "CamId": "63bd1e95bfd3d90017ec3cd5", "CamName": "TTH 244", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7131108376067, + "Longitude": 106.731684207916 }, { "CamId": "662a8fd41afb9c00172d2bac", "CamName": "TTH 328", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7045402040992, + "Longitude": 106.732370853424 }, { "CamId": "662b86551afb9c00172dd227", "CamName": "TTH 404", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7702052976598, + "Longitude": 106.697469949722 }, { "CamId": "5bbc7163ca0577001164127f", "CamName": "TTH 137", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6895647333739, + "Longitude": 106.702550053597 }, { "CamId": "5deb576d1dc17d7c5515ad10", "CamName": "ITS 7.7", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.773652, + "Longitude": 106.689579 }, { "CamId": "587c79e9b807da0011e33d3d", "CamName": "TTH 40.3", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587c79e9b807da0011e33d3d", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7986878751089, + "Longitude": 106.718965172768 }, { "CamId": "6623f1f16f998a001b25281f", "CamName": "TTH 295", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.865064709737, + "Longitude": 106.759042739868 }, { "CamId": "63ae7cd3bfd3d90017e8f408", "CamName": "TTH 204", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7667007795163, + "Longitude": 106.64261341095 }, { "CamId": "63b65ebebfd3d90017eaa3ae", "CamName": "TTH 233.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7891447995017, + "Longitude": 106.71642780304 }, { "CamId": "63b54a04bfd3d90017ea783e", "CamName": "TTH 216", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8502078623705, + "Longitude": 106.813673973084 }, { "CamId": "631955e7c9eae60017a1c30a", "CamName": "TTH 179", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7802232516687, + "Longitude": 106.677144169807 }, { "CamId": "63ae763bbfd3d90017e8f0c4", "CamName": "TTH 182", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7662581006404, + "Longitude": 106.678780317307 }, { "CamId": "6623ebd76f998a001b25264d", "CamName": "TTH 277", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8522309658882, + "Longitude": 106.626455783844 }, { "CamId": "65e054fb6b18080018db6632", "CamName": "TTH 250", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7832164525575, + "Longitude": 106.701187491417 }, { "CamId": "5deb576d1dc17d7c5515acf5", "CamName": "ITS 1.3-2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.767428, + "Longitude": 106.674596 }, { "CamId": "62da3e390637a10017d706ff", "CamName": "TTH 268.1", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8444440496827, + "Longitude": 106.718230247498 }, { "CamId": "63b54968bfd3d90017ea7808", "CamName": "TTH 213", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7904358462274, + "Longitude": 106.781616210938 }, { "CamId": "63b65f8dbfd3d90017eaa434", "CamName": "TTH 235", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7927439077816, + "Longitude": 106.707404851913 }, { "CamId": "662b836d1afb9c00172dcfa0", "CamName": "TTH 393", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7873373247725, + "Longitude": 106.704819202423 }, { "CamId": "587461c1b807da0011e33cc8", "CamName": "TTH 21.4", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587461c1b807da0011e33cc8", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8735570152435, + "Longitude": 106.765501499176 }, { "CamId": "5a8267fe5058170011f6eae1", "CamName": "TTH 123.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7235786992945, + "Longitude": 106.697700619698 }, { "CamId": "5deb576d1dc17d7c5515ad14", "CamName": "ITS 7.53", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7778940148849, + "Longitude": 106.701037287712 }, { "CamId": "56df807bc062921100c143da", "CamName": "TTH 28.3", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df807bc062921100c143da", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8019180137061, + "Longitude": 106.63648724556 }, { "CamId": "5b87c386ca057700116404a6", "CamName": "TTH 60.4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7710432140034, + "Longitude": 106.715902090073 }, { "CamId": "5deb576d1dc17d7c5515ad0f", "CamName": "ITS 7.4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.776014, + "Longitude": 106.691731 }, { "CamId": "5deb576d1dc17d7c5515acfe", "CamName": "ITS 2.8", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7825155824841, + "Longitude": 106.683688759804 }, { "CamId": "58afea5dbd82540010390c4d", "CamName": "TTH 21.43", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58afea5dbd82540010390c4d", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6741931544789, + "Longitude": 106.580477356911 }, { "CamId": "58d7b3e8c1e33c00112b3207", "CamName": "TTH 21.47", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58d7b3e8c1e33c00112b3207", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6901498501196, + "Longitude": 106.595363616943 }, { "CamId": "662a8f3a1afb9c00172d2b31", "CamName": "TTH 326", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7445238765742, + "Longitude": 106.701600551605 }, { "CamId": "662a8ef41afb9c00172d2af2", "CamName": "TTH 325", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7449876687987, + "Longitude": 106.704325675964 }, { "CamId": "6623e3a26f998a001b252291", "CamName": "TTH 257", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7843863222755, + "Longitude": 106.684466600418 }, { "CamId": "662b4e581afb9c00172d862f", "CamName": "TTH 333", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7604188946108, + "Longitude": 106.677095890045 }, { "CamId": "662b7ce71afb9c00172dc676", "CamName": "TTH 374", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7726452614037, + "Longitude": 106.691064834595 }, { "CamId": "6623f1996f998a001b252805", "CamName": "TTH 294", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.809194919668, + "Longitude": 106.756038665771 }, { "CamId": "56df8108c062921100c143db", "CamName": "TTH 23", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df8108c062921100c143db", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8090315732439, + "Longitude": 106.674022078514 }, { "CamId": "58d7c20ac1e33c00112b321c", "CamName": "TTH 45.4", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58d7c20ac1e33c00112b321c", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8207659432755, + "Longitude": 106.69480919838 }, { "CamId": "58e49ff8d9d6200011e0b9d4", "CamName": "TTH 35.2", "Disctrict": "Quận 3", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58e49ff8d9d6200011e0b9d4", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7863150164711, + "Longitude": 106.687223911285 }, { "CamId": "5a8253bc5058170011f6eac1", "CamName": "TTH 107.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8030930799773, + "Longitude": 106.709395051003 }, { "CamId": "5a8253615058170011f6eabf", "CamName": "TTH 107.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8030720025958, + "Longitude": 106.710022687912 }, { "CamId": "662b50c11afb9c00172d8843", "CamName": "TTH 343", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7517441974476, + "Longitude": 106.624084711075 }, { "CamId": "5deb576d1dc17d7c5515ad1c", "CamName": "ITS 9.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7652936908376, + "Longitude": 106.707260012627 }, { "CamId": "662b50261afb9c00172d87b2", "CamName": "TTH 340", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7420784148825, + "Longitude": 106.688178777695 }, { "CamId": "63ae7903bfd3d90017e8f211", "CamName": "TTH 191", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7483923035435, + "Longitude": 106.636669635773 }, { "CamId": "56de42f611f398ec0c48129d", "CamName": "TTH 21.39", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48129d", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7223980522437, + "Longitude": 106.600669026375 }, { "CamId": "589b3705b3bf7600110283bd", "CamName": "TTH 47.1", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589b3705b3bf7600110283bd", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8551338847726, + "Longitude": 106.607385277748 }, { "CamId": "5d8cdb0a766c880017188964", "CamName": "TTH 160", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7937134991298, + "Longitude": 106.651657819748 }, { "CamId": "5a10c79f02eb490011a0b0dd", "CamName": "TTH 59.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7713172490313, + "Longitude": 106.716717481613 }, { "CamId": "5d8cdc57766c88001718896e", "CamName": "TTH 165", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7904463853615, + "Longitude": 106.652473211288 }, { "CamId": "66f1266f538c780017c93579", "CamName": "TTH 265.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.760766720521, + "Longitude": 106.67405962944 }, { "CamId": "5d8cdbdc766c88001718896a", "CamName": "TTH 163", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8006744408059, + "Longitude": 106.660782694817 }, { "CamId": "66f126e8538c780017c9362f", "CamName": "TTH 334.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7587008395322, + "Longitude": 106.662740707397 }, { "CamId": "5b632950fd4edb0019c7dc07", "CamName": "TTH 131", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7568773715932, + "Longitude": 106.684874296188 }, { "CamId": "6623eb466f998a001b252632", "CamName": "TTH 276", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8536955999934, + "Longitude": 106.679220199585 }, { "CamId": "56de42f611f398ec0c48129a", "CamName": "TTH 19.1", "Disctrict": "Quận Bình Tân", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48129a", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.722239929521, + "Longitude": 106.610904335976 }, { "CamId": "56de42f611f398ec0c481289", "CamName": "TTH 7.2", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481289", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7639024056841, + "Longitude": 106.698285341263 }, { "CamId": "56de42f611f398ec0c48128b", "CamName": "TTH 9.1", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48128b", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7543213358374, + "Longitude": 106.68691277504 }, { "CamId": "56de42f611f398ec0c481292", "CamName": "TTH 17.1", "Disctrict": "Quận 6", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481292", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7413616378753, + "Longitude": 106.645520925522 }, { "CamId": "56de42f611f398ec0c48128e", "CamName": "TTH 10.2", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48128e", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7514332528817, + "Longitude": 106.684101819992 }, { "CamId": "56de42f611f398ec0c48128c", "CamName": "TTH 9.2", "Disctrict": "Management Center of Sai Gon River Tunnel", "SnapshotUrl": "tth", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7536415, + "Longitude": 106.6864407 }, { "CamId": "56de42f611f398ec0c481287", "CamName": "TTH 6.1", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481287", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7654781410386, + "Longitude": 106.700146794319 }, { "CamId": "56de42f611f398ec0c48129b", "CamName": "TTH 19.2", "Disctrict": "Quận Bình Tân", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48129b", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.721839351587, + "Longitude": 106.611467599869 }, { "CamId": "5822adbbedeb6c0012a2d65f", "CamName": "TTH 10.1", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5822adbbedeb6c0012a2d65f", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7519444666594, + "Longitude": 106.68367266655 }, { "CamId": "56de42f611f398ec0c481299", "CamName": "TTH 18.2", "Disctrict": "Quận Bình Tân", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481299", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7265671915496, + "Longitude": 106.620351076126 }, { "CamId": "56de42f611f398ec0c481288", "CamName": "TTH 7.1", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481288", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7637917349984, + "Longitude": 106.697652339935 }, { "CamId": "56de42f611f398ec0c481296", "CamName": "TTH 16.1", "Disctrict": "Quận 6", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481296", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7442498171975, + "Longitude": 106.650842428207 }, { "CamId": "56de42f611f398ec0c48129c", "CamName": "TTH 20.1", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48129c", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7170534584198, + "Longitude": 106.600942611694 }, { "CamId": "58c2717ed56e930010a39ac0", "CamName": "TTH 42.6", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58c2717ed56e930010a39ac0", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7418073259385, + "Longitude": 106.656062516536 }, { "CamId": "58afcd9bbd82540010390c41", "CamName": "TTH 21.41", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58afcd9bbd82540010390c41", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6965544326304, + "Longitude": 106.596699357033 }, { "CamId": "58afccadbd82540010390c3f", "CamName": "TTH 21.40", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58afccadbd82540010390c3f", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6966335007055, + "Longitude": 106.596463322639 }, { "CamId": "6623e7076f998a001b2523ea", "CamName": "TTH 267", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7677758540786, + "Longitude": 106.671495437622 }, { "CamId": "586e266ef9fab7001111b0b0", "CamName": "TTH 28.5", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/586e266ef9fab7001111b0b0", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8140847327392, + "Longitude": 106.633150577545 }, { "CamId": "662b7f9f1afb9c00172dca50", "CamName": "TTH 379", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7904674636287, + "Longitude": 106.701471805573 }, { "CamId": "662b87551afb9c00172dd43a", "CamName": "TTH 408", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7848974801384, + "Longitude": 106.683104038239 }, { "CamId": "5d8cdb9f766c880017188968", "CamName": "TTH 162", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7993728992472, + "Longitude": 106.677471399307 }, { "CamId": "63b65f64bfd3d90017eaa41f", "CamName": "TTH 234", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8068184838962, + "Longitude": 106.711615920067 }, { "CamId": "662b4efc1afb9c00172d86bc", "CamName": "TTH 336", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7525663544172, + "Longitude": 106.667847633362 }, { "CamId": "5b728aafca0577001163ff7e", "CamName": "TTH 136", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7548430851016, + "Longitude": 106.658910512924 }, { "CamId": "662b58791afb9c00172d9107", "CamName": "TTH 361", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8005216285264, + "Longitude": 106.664301753044 }, { "CamId": "5a8255a55058170011f6eac7", "CamName": "TTH 109.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8168141411482, + "Longitude": 106.711433529854 }, { "CamId": "5822f23aedeb6c0012a2d6a8", "CamName": "TTH 3a", "Disctrict": "Khu quản lý giao thông đô thị số 1", "SnapshotUrl": "tth", - "ManagementUnit": "Khu quản lý giao thông đô thị số 1" + "ManagementUnit": "Khu quản lý giao thông đô thị số 1", + "Latitude": 10.7535518857808, + "Longitude": 106.651153564453 }, { "CamId": "5b632b60fd4edb0019c7dc12", "CamName": "TTH 134", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7557179353779, + "Longitude": 106.666420698166 }, { "CamId": "63b3c274bfd3d90017e9ab93", "CamName": "TTH 10a", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7546955197447, + "Longitude": 106.662520766258 }, { "CamId": "662a89f51afb9c00172d26ef", "CamName": "TTH 314.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7024001433989, + "Longitude": 106.634652614593 }, { "CamId": "63ae7c12bfd3d90017e8f3c0", "CamName": "TTH 201.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7621422099615, + "Longitude": 106.656598448753 }, { "CamId": "5deb576d1dc17d7c5515ad0b", "CamName": "ITS 7.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.775615, + "Longitude": 106.699042 }, { "CamId": "5deb576d1dc17d7c5515ad03", "CamName": "ITS 3.5", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7814721788992, + "Longitude": 106.692835092545 }, { "CamId": "5deb576d1dc17d7c5515ad07", "CamName": "ITS 5.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.797381, + "Longitude": 106.672665 }, { "CamId": "63ae78ccbfd3d90017e8f1f9", @@ -2062,3520 +2648,4526 @@ "CamName": "TTH 291", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7704213643614, + "Longitude": 106.631401777267 }, { "CamId": "662b51a41afb9c00172d8926", "CamName": "TTH 347", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7763973916927, + "Longitude": 106.601006984711 }, { "CamId": "586e20a0f9fab7001111b0a7", "CamName": "TTH 39.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8062968247449, + "Longitude": 106.6783618927 }, { "CamId": "5a606c078576340017d06624", "CamName": "TTH 21.16", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8495545656016, + "Longitude": 106.718916893005 }, { "CamId": "662b5a401afb9c00172d91fc", "CamName": "TTH 364", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7980239271457, + "Longitude": 106.6437292099 }, { "CamId": "6623edd26f998a001b2526f7", "CamName": "TTH 282.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8267936584446, + "Longitude": 106.679542064667 }, { "CamId": "662b59291afb9c00172d912b", "CamName": "TTH 363", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7987511081718, + "Longitude": 106.662569046021 }, { "CamId": "56df84abc062921100c143e5", "CamName": "TTH 24.2", "Disctrict": "Quận Gò Vấp", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df84abc062921100c143e5", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8142217306645, + "Longitude": 106.679236292839 }, { "CamId": "587ef859b807da0011e33d5b", "CamName": "TTH 45.1", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587ef859b807da0011e33d5b", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8200546227367, + "Longitude": 106.689868569374 }, { "CamId": "587efb60b807da0011e33d5d", "CamName": "TTH 45.2", "Disctrict": "Quận Gò Vấp", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587efb60b807da0011e33d5d", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8192748027252, + "Longitude": 106.689192652702 }, { "CamId": "5a824f975058170011f6eab8", "CamName": "TTH 116.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8310719980749, + "Longitude": 106.676913499832 }, { "CamId": "6623e6706f998a001b25239b", "CamName": "TTH 265", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7612726484012, + "Longitude": 106.675046682358 }, { "CamId": "58aff01fbd82540010390c50", "CamName": "TTH 21.44", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58aff01fbd82540010390c50", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6737028958529, + "Longitude": 106.58026278019 }, { "CamId": "6623e8406f998a001b252465", "CamName": "TTH 271", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8031773894881, + "Longitude": 106.692352294922 }, { "CamId": "63ae7c73bfd3d90017e8f3ed", "CamName": "TTH 203.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7708113380158, + "Longitude": 106.658003926277 }, { "CamId": "5a82439f5058170011f6eaa9", "CamName": "TTH 103", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.75113811876, + "Longitude": 106.68364584446 }, { "CamId": "662b5afe1afb9c00172d9284", "CamName": "TTH 366.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8227260178037, + "Longitude": 106.629813909531 }, { "CamId": "58affc6017139d0010f35cc8", "CamName": "TTH 21.14", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58affc6017139d0010f35cc8", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8262720340397, + "Longitude": 106.714013814926 }, { "CamId": "59d3414302eb490011a0a610", "CamName": "TTH 33.6", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8674828287814, + "Longitude": 106.803814172745 }, { "CamId": "6623f5b56f998a001b25292f", "CamName": "TTH 302.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8022710610062, + "Longitude": 106.746608018875 }, { "CamId": "58d7b5a7c1e33c00112b320a", "CamName": "TTH 21.48", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58d7b5a7c1e33c00112b320a", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6859643956044, + "Longitude": 106.576287746429 }, { "CamId": "58b555ac17139d0010f35d59", "CamName": "TTH 42.5", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58b555ac17139d0010f35d59", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7443815765443, + "Longitude": 106.656072735786 }, { "CamId": "587475abb807da0011e33cea", "CamName": "TTH 29.3", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587475abb807da0011e33cea", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8091738427151, + "Longitude": 106.664789915085 }, { "CamId": "58e49e3dd9d6200011e0b9d1", "CamName": "TTH 35.1", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7886020312638, + "Longitude": 106.6847884655 }, { "CamId": "5d8cd326766c88001718893e", "CamName": "TTH 141", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.75418958083, + "Longitude": 106.643235683441 }, { "CamId": "66b1c426779f74001867415e", "CamName": "TTH 419", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8010801833774, + "Longitude": 106.715161800385 }, { "CamId": "5deb576d1dc17d7c5515acff", "CamName": "ITS 3.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.791464, + "Longitude": 106.687554 }, { "CamId": "56df8381c062921100c143e2", "CamName": "TTH 25.1", "Disctrict": "Quận 7", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df8381c062921100c143e2", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.740497286869, + "Longitude": 106.700946092606 }, { "CamId": "63b6617ebfd3d90017eaa50b", "CamName": "TTH 242.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7592436616732, + "Longitude": 106.713917255402 }, { "CamId": "59ca317602eb490011a0a408", "CamName": "IDICO-QL1 29", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7492355507977, + "Longitude": 106.593974232674 }, { "CamId": "5a607fa38576340017d06671", "CamName": "IDICO-QL1 08", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8253815821995, + "Longitude": 106.603088378906 }, { "CamId": "5a6087858576340017d0668e", "CamName": "IDICO-QL1 32", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7414565055181, + "Longitude": 106.598871946335 }, { "CamId": "5a6085fb8576340017d06686", "CamName": "IDICO-QL1 28", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7499628496621, + "Longitude": 106.593507528305 }, { "CamId": "584e738361cfea0012cf6951", "CamName": "TTH 21.38", "Disctrict": "Quận Bình Tân", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/584e738361cfea0012cf6951", - "ManagementUnit": "MCST" + "ManagementUnit": "MCST", + "Latitude": 10.8161291568165, + "Longitude": 106.600910425186 }, { "CamId": "584e71cb61cfea0012cf694b", "CamName": "TTH 21.36", "Disctrict": "Quận Bình Tân", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/584e71cb61cfea0012cf694b", - "ManagementUnit": "MCST" + "ManagementUnit": "MCST", + "Latitude": 10.8248968380735, + "Longitude": 106.603265404701 }, { "CamId": "59ca2cf302eb490011a0a3eb", "CamName": "IDICO-QL1 03", "Disctrict": "2", "SnapshotUrl": "tth", - "ManagementUnit": 2 + "ManagementUnit": 2, + "Latitude": 10.8427001319976, + "Longitude": 106.615458726883 }, { "CamId": "59ca30fd02eb490011a0a406", "CamName": "IDICO-QL1 25", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7564662992633, + "Longitude": 106.591324210167 }, { "CamId": "59ca2cac02eb490011a0a3e9", "CamName": "IDICO-QL1 02", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8395020450536, + "Longitude": 106.611746549606 }, { "CamId": "59ca321b02eb490011a0a40d", "CamName": "IDICO-QL1 34", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7286174804458, + "Longitude": 106.601784825325 }, { "CamId": "5d8cd767766c880017188950", "CamName": "TTH 150", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8230474266509, + "Longitude": 106.702968478203 }, { "CamId": "5a6084898576340017d06680", "CamName": "IDICO-QL1 24", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7642238774455, + "Longitude": 106.590535640717 }, { "CamId": "584e734a61cfea0012cf694f", "CamName": "TTH 21.37", "Disctrict": "Quận Bình Tân", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/584e734a61cfea0012cf694f", - "ManagementUnit": "MCST" + "ManagementUnit": "MCST", + "Latitude": 10.8162345391232, + "Longitude": 106.60130739212 }, { "CamId": "59ca308302eb490011a0a403", "CamName": "IDICO-QL1 22", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7672014274613, + "Longitude": 106.590755581856 }, { "CamId": "59ca301902eb490011a0a400", "CamName": "IDICO-QL1 20", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7702369171868, + "Longitude": 106.591292023659 }, { "CamId": "5a6084208576340017d0667e", "CamName": "IDICO-QL1 23", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7661000008843, + "Longitude": 106.590557098389 }, { "CamId": "5a6085688576340017d06684", "CamName": "IDICO-QL1 27", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.756524271036, + "Longitude": 106.591758728027 }, { "CamId": "5a6085188576340017d06682", "CamName": "IDICO-QL1 26", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7563292750288, + "Longitude": 106.592434644699 }, { "CamId": "5a60839c8576340017d0667c", "CamName": "IDICO-QL1 21", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.769962881176, + "Longitude": 106.591436862946 }, { "CamId": "5a6086e88576340017d0668a", "CamName": "IDICO-QL1 30", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7485662234825, + "Longitude": 106.594237089157 }, { "CamId": "662a8b9e1afb9c00172d284d", "CamName": "TTH 317.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6882837981823, + "Longitude": 106.585782766342 }, { "CamId": "5a60604f8576340017d0660b", "CamName": "TTH 24.5", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8243172516762, + "Longitude": 106.686376333237 }, { "CamId": "63b664edbfd3d90017eaaa24", "CamName": "TTH 243.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6846307310993, + "Longitude": 106.566883921623 }, { "CamId": "63ae7d29bfd3d90017e8f437", "CamName": "TTH 206", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7778307774358, + "Longitude": 106.656131744385 }, { "CamId": "5ad06a0d98d8fc001102e27b", "CamName": "TTH 119.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8135578170586, + "Longitude": 106.579318642616 }, { "CamId": "587654d3b807da0011e33d36", "CamName": "TTH 22.12", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587654d3b807da0011e33d36", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7625480044979, + "Longitude": 106.767582893372 }, { "CamId": "63b54dcbbfd3d90017ea7ba8", "CamName": "TTH 228", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.865338658848, + "Longitude": 106.793847084045 }, { "CamId": "63b66008bfd3d90017eaa476", "CamName": "TTH 238", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8036621687159, + "Longitude": 106.721674203873 }, { "CamId": "5deb576d1dc17d7c5515ad21", "CamName": "ITS 10.2-1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.759539, + "Longitude": 106.668851 }, { "CamId": "5a8266105058170011f6eadf", "CamName": "TTH 121.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7190774577163, + "Longitude": 106.655761599541 }, { "CamId": "5deb576d1dc17d7c5515ad11", "CamName": "ITS 7.5", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.777922, + "Longitude": 106.689658 }, { "CamId": "5deb576d1dc17d7c5515acfc", "CamName": "ITS 2.5", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7800124617515, + "Longitude": 106.68729364872 }, { "CamId": "5874656eb807da0011e33cde", "CamName": "TTH 21.13", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5874656eb807da0011e33cde", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8647433460363, + "Longitude": 106.724211573601 }, { "CamId": "5aab1f852d266a0017e5afd4", "CamName": "TTH 124.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7496677141024, + "Longitude": 106.754032373428 }, { "CamId": "5deb576d1dc17d7c5515ad22", "CamName": "ITS 10.2-2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.76009, + "Longitude": 106.669124 }, { "CamId": "6623e61d6f998a001b252377", "CamName": "TTH 264", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7794538677567, + "Longitude": 106.678587198257 }, { "CamId": "5deb576d1dc17d7c5515ad0c", "CamName": "ITS 7.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.771135, + "Longitude": 106.693342 }, { "CamId": "5deb576d1dc17d7c5515acfa", "CamName": "ITS 2.1-2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.777664, + "Longitude": 106.681336 }, { "CamId": "5deb576d1dc17d7c5515acf8", "CamName": "ITS 1.51", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.773823, + "Longitude": 106.67782 }, { "CamId": "63ae75a3bfd3d90017e8f051", "CamName": "TTH 180.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.767891793263, + "Longitude": 106.685453653336 }, { "CamId": "587c8661b807da0011e33d43", "CamName": "TTH 38.6", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587c8661b807da0011e33d43", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7999683420367, + "Longitude": 106.660519838333 }, { "CamId": "66b1c34d779f74001867409e", "CamName": "TTH 414", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.768197450899, + "Longitude": 106.666828393936 }, { "CamId": "66b1c370779f7400186740b3", "CamName": "TTH 415", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7763868520664, + "Longitude": 106.663513183594 }, { "CamId": "5b0b7aba0e517b00119fd800", "CamName": "TTH 126.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7562818435485, + "Longitude": 106.685163974762 }, { "CamId": "5d8cd49f766c880017188944", "CamName": "TTH 144", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7547007899372, + "Longitude": 106.669499874115 }, { "CamId": "5deb576d1dc17d7c5515ad1f", "CamName": "ITS 9.51", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7563292750288, + "Longitude": 106.666474342346 }, { "CamId": "5d8cdac3766c880017188962", "CamName": "TTH 159", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7970385413523, + "Longitude": 106.645912528038 }, { "CamId": "66b1c4e7779f7400186741e4", "CamName": "TTH 421", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8004004325254, + "Longitude": 106.665455102921 }, { "CamId": "5deb576d1dc17d7c5515ad20", "CamName": "ITS 10.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.755881, + "Longitude": 106.666241 }, { "CamId": "5deb576d1dc17d7c5515acf6", "CamName": "ITS 1.4-1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.765389, + "Longitude": 106.681205 }, { "CamId": "5deb576d1dc17d7c5515acf7", "CamName": "ITS 1.4-2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.765059, + "Longitude": 106.68172 }, { "CamId": "5d8cd1f9766c880017188938", "CamName": "TTH 138", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7535782368426, + "Longitude": 106.669569611549 }, { "CamId": "56df82d4c062921100c143e0", "CamName": "TTH 33.2", "Disctrict": "Quận 9", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df82d4c062921100c143e0", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8264933293527, + "Longitude": 106.760866641998 }, { "CamId": "56df8274c062921100c143df", "CamName": "TTH 33.1", "Disctrict": "Quận 9", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df8274c062921100c143df", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8264933293527, + "Longitude": 106.761032938957 }, { "CamId": "56de42f611f398ec0c481284", "CamName": "TTH 5a", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481284", - "ManagementUnit": "Khu quản lý giao thông đô thị số 1" + "ManagementUnit": "Khu quản lý giao thông đô thị số 1", + "Latitude": 10.7664899801327, + "Longitude": 106.682481765747 }, { "CamId": "63b664d2bfd3d90017eaaa0f", "CamName": "TTH 243.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6852580285724, + "Longitude": 106.571159362793 }, { "CamId": "58afdbaebd82540010390c48", "CamName": "TTH 21.42", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58afdbaebd82540010390c48", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.689411864849, + "Longitude": 106.592531204224 }, { "CamId": "58747923b807da0011e33cf5", "CamName": "TTH 28.2", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58747923b807da0011e33cf5", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7931970867358, + "Longitude": 106.653615832329 }, { "CamId": "5a606c758576340017d06626", "CamName": "TTH 44.9", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8142322689639, + "Longitude": 106.712779998779 }, { "CamId": "5a8256df5058170011f6eacb", "CamName": "TTH 110", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8172620146729, + "Longitude": 106.713198423386 }, { "CamId": "662a902a1afb9c00172d2bed", "CamName": "TTH 329", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7114030554397, + "Longitude": 106.59907579422 }, { "CamId": "5abbb77298d8fc001102dfce", "CamName": "TTH 249.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7315637581429, + "Longitude": 106.720327734947 }, { "CamId": "586e2492f9fab7001111b0ab", "CamName": "TTH 34.2", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/586e2492f9fab7001111b0ab", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7955947082032, + "Longitude": 106.675336360931 }, { "CamId": "5875cef0b807da0011e33d14", "CamName": "TTH 28.6", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5875cef0b807da0011e33d14", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8134629721378, + "Longitude": 106.632796525955 }, { "CamId": "587ed91db807da0011e33d4e", "CamName": "TTH 44.5", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587ed91db807da0011e33d4e", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8024818353159, + "Longitude": 106.697963476181 }, { "CamId": "5a824b6c5058170011f6eaab", "CamName": "TTH 104.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.773841521503, + "Longitude": 106.621397137642 }, { "CamId": "5874796db807da0011e33cf7", "CamName": "TTH 28.7", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5874796db807da0011e33cf7", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8199228965258, + "Longitude": 106.630790233612 }, { "CamId": "58b5752e17139d0010f35d5f", "CamName": "TTH 35.7", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58b5752e17139d0010f35d5f", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7794696770349, + "Longitude": 106.695173978806 }, { "CamId": "58af8d68bd82540010390c2e", "CamName": "TTH 35.5", "Disctrict": "Quận 3", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58af8d68bd82540010390c2e", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7833376554873, + "Longitude": 106.690700054169 }, { "CamId": "589b3f7db3bf7600110283c6", "CamName": "TTH 47.4", "Disctrict": "Huyện Hóc Môn", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589b3f7db3bf7600110283c6", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8841088420888, + "Longitude": 106.586925387383 }, { "CamId": "589b4379b3bf7600110283c9", "CamName": "TTH 47.5", "Disctrict": "Huyện Củ Chi", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589b4379b3bf7600110283c9", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9713380309812, + "Longitude": 106.481675505638 }, { "CamId": "595dd7693dcfc400106f28b0", "CamName": "TTH 21.68", "Disctrict": "2", "SnapshotUrl": "tth", - "ManagementUnit": 2 + "ManagementUnit": 2, + "Latitude": 10.8619248135124, + "Longitude": 106.65426492691 }, { "CamId": "595ddc123dcfc400106f28ba", "CamName": "TTH 21.73", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8617509592331, + "Longitude": 106.649812459946 }, { "CamId": "5a6065c58576340017d06615", "CamName": "TTH 21.84", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8797100979598, + "Longitude": 106.677986383438 }, { "CamId": "5a6066608576340017d06617", "CamName": "TTH 21.85", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.839438820585, + "Longitude": 106.647216081619 }, { "CamId": "58e49783d9d6200011e0b9ce", "CamName": "TTH 28.10", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58e49783d9d6200011e0b9ce", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8274733494884, + "Longitude": 106.624760627747 }, { "CamId": "58af8a0bbd82540010390c25", "CamName": "TTH 35.3", "Disctrict": "Quận 3", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58af8a0bbd82540010390c25", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.784533873088, + "Longitude": 106.688543558121 }, { "CamId": "59ca2d9d02eb490011a0a3f0", "CamName": "IDICO-QL1 05", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8342965190794, + "Longitude": 106.606961488724 }, { "CamId": "595f8d233dcfc400106f28f0", "CamName": "TTH 21.78", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8528104982269, + "Longitude": 106.632506847382 }, { "CamId": "63ae79aabfd3d90017e8f26a", "CamName": "TTH 195", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7858618271433, + "Longitude": 106.6664904356 }, { "CamId": "58ad6214bd82540010390be2", "CamName": "TTH 38.8", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58ad6214bd82540010390be2", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8013120360293, + "Longitude": 106.647366285324 }, { "CamId": "5a824c3e5058170011f6eaae", "CamName": "TTH 104.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7738836803625, + "Longitude": 106.621649265289 }, { "CamId": "5a607f078576340017d0666f", "CamName": "IDICO-QL1 07", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8344440453534, + "Longitude": 106.606779098511 }, { "CamId": "58d7c2e6c1e33c00112b321e", "CamName": "TTH 28.9", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58d7c2e6c1e33c00112b321e", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8269833398213, + "Longitude": 106.625425815582 }, { "CamId": "589b39d9b3bf7600110283c1", "CamName": "TTH 47.2", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589b39d9b3bf7600110283c1", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8554657956616, + "Longitude": 106.607159972191 }, { "CamId": "595ddb493dcfc400106f28b6", "CamName": "TTH 21.71", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8620881310764, + "Longitude": 106.649731993675 }, { "CamId": "595f86c43dcfc400106f28ea", "CamName": "TTH 21.75", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8566248466676, + "Longitude": 106.639485955238 }, { "CamId": "595dd4f43dcfc400106f28ab", "CamName": "TTH 21.66", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8616403246391, + "Longitude": 106.663309335709 }, { "CamId": "5a824c905058170011f6eab0", "CamName": "TTH 104.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7736939654481, + "Longitude": 106.62178337574 }, { "CamId": "5a824e465058170011f6eab4", "CamName": "TTH 115.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8366990807787, + "Longitude": 106.658325791359 }, { "CamId": "5a6061fd8576340017d06613", "CamName": "TTH 21.83", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8885285926454, + "Longitude": 106.596522331238 }, { "CamId": "58af8eb2bd82540010390c30", "CamName": "TTH 35.6", "Disctrict": "Quận 3", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58af8eb2bd82540010390c30", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7797542439016, + "Longitude": 106.695082783699 }, { "CamId": "58df4d95dc195800111e04b9", "CamName": "TTH 26.4", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58df4d95dc195800111e04b9", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8079619154301, + "Longitude": 106.672879457474 }, { "CamId": "589b4644b3bf7600110283ce", "CamName": "TTH 48.1", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589b4644b3bf7600110283ce", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.892943009858, + "Longitude": 106.687889099121 }, { "CamId": "58df50ffdc195800111e04c0", "CamName": "TTH 26.7", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58df50ffdc195800111e04c0", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8009484488364, + "Longitude": 106.660755872726 }, { "CamId": "595f874d3dcfc400106f28ec", "CamName": "TTH 21.76", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8566669938921, + "Longitude": 106.639571785927 }, { "CamId": "5a6060a88576340017d0660d", "CamName": "TTH 24.6", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8261245037402, + "Longitude": 106.689493060112 }, { "CamId": "589ad89eb3bf7600110283ac", "CamName": "TTH 46.1", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589ad89eb3bf7600110283ac", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8486167661312, + "Longitude": 106.633611917496 }, { "CamId": "586e2995f9fab7001111b0b5", "CamName": "TTH 40.1", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/586e2995f9fab7001111b0b5", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8075192972885, + "Longitude": 106.716395616531 }, { "CamId": "6623ec376f998a001b252671", "CamName": "TTH 278", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8474892954581, + "Longitude": 106.635167598724 }, { "CamId": "586e1f18f9fab7001111b0a5", "CamName": "TTH 38.1", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/586e1f18f9fab7001111b0a5", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8070661399436, + "Longitude": 106.634953022003 }, { "CamId": "662a87a41afb9c00172d24e9", "CamName": "TTH 306", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7617258747396, + "Longitude": 106.569678783417 }, { "CamId": "662a88521afb9c00172d2592", "CamName": "TTH 310", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7281852870275, + "Longitude": 106.607261896133 }, { "CamId": "662b558c1afb9c00172d8ed2", "CamName": "TTH 354", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8351289878163, + "Longitude": 106.663491725922 }, { "CamId": "63b55020bfd3d90017ea7cb7", "CamName": "TTH 231.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7702738066308, + "Longitude": 106.77515745163 }, { "CamId": "5deb576d1dc17d7c5515ad18", "CamName": "ITS 8.6", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.781431, + "Longitude": 106.699614 }, { "CamId": "58abc0cbbd82540010390ba6", "CamName": "TTH 49.3", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58abc0cbbd82540010390ba6", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7982289959934, + "Longitude": 106.724311485887 }, { "CamId": "631812e6c9eae60017a19567", "CamName": "TTH 49.11", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7980818909152, + "Longitude": 106.723358631134 }, { "CamId": "63b3c2fbbfd3d90017e9abbf", "CamName": "TTH 49.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7980089972696, + "Longitude": 106.724379211664 }, { "CamId": "63b54f70bfd3d90017ea7c86", "CamName": "TTH 49.10", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7985614089434, + "Longitude": 106.726276874542 }, { "CamId": "58abbf72bd82540010390ba4", "CamName": "TTH 49.9", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7985614089434, + "Longitude": 106.726319789886 }, { "CamId": "63b660d8bfd3d90017eaa4d5", "CamName": "TTH 242.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7527666230832, + "Longitude": 106.723691225052 }, { "CamId": "5deb576d1dc17d7c5515ad1e", "CamName": "ITS 9.5", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.770674, + "Longitude": 106.702639 }, { "CamId": "56f11afc3ac17b11001c504e", "CamName": "TTH 31", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56f11afc3ac17b11001c504e", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8048741133609, + "Longitude": 106.664215922356 }, { "CamId": "56df8159c062921100c143dc", "CamName": "TTH 32.1", "Disctrict": "Quận 9", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df8159c062921100c143dc", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8490751291612, + "Longitude": 106.774283051491 }, { "CamId": "587ef5dfb807da0011e33d59", "CamName": "TTH 34.8", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587ef5dfb807da0011e33d59", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7928914544929, + "Longitude": 106.679853200912 }, { "CamId": "5ad064b498d8fc001102e26f", "CamName": "TTH 125.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.827699912827, + "Longitude": 106.805992126465 }, { "CamId": "56df8544c062921100c143e6", "CamName": "TTH 29.1", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df8544c062921100c143e6", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8136315853096, + "Longitude": 106.665363907814 }, { "CamId": "63b65fa9bfd3d90017eaa449", "CamName": "TTH 236", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7953154258079, + "Longitude": 106.709818840027 }, { "CamId": "63b5503bbfd3d90017ea7ccc", "CamName": "TTH 231.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7697468141455, + "Longitude": 106.775082349777 }, { "CamId": "662b80e81afb9c00172dcbec", "CamName": "TTH 383", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7730352321784, + "Longitude": 106.690050959587 }, { "CamId": "6623f4836f998a001b2528bf", "CamName": "TTH 299.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8354978023394, + "Longitude": 106.765801906586 }, { "CamId": "586e1d4ef9fab7001111b0a2", "CamName": "TTH 38.2", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/586e1d4ef9fab7001111b0a2", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8016071209638, + "Longitude": 106.651110649109 }, { "CamId": "58746295b807da0011e33ccb", "CamName": "TTH 21.5", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58746295b807da0011e33ccb", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8752217316573, + "Longitude": 106.758962273598 }, { "CamId": "5a6069238576340017d0661c", "CamName": "TTH 44.6", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8026188385378, + "Longitude": 106.698435544968 }, { "CamId": "56de42f611f398ec0c481298", "CamName": "TTH 18.1", "Disctrict": "Quận Bình Tân", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481298", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7263616348268, + "Longitude": 106.61993265152 }, { "CamId": "662b54bb1afb9c00172d8dbb", "CamName": "TTH 352", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8502078623705, + "Longitude": 106.652623414993 }, { "CamId": "56df83d8c062921100c143e3", "CamName": "TTH 24.1", "Disctrict": "Quận Gò Vấp", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df83d8c062921100c143e3", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8140847327392, + "Longitude": 106.678351163864 }, { "CamId": "56de42f611f398ec0c481283", "CamName": "TTH 4.1", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481283", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.775796632403, + "Longitude": 106.72761797905 }, { "CamId": "56de42f611f398ec0c481286", "CamName": "TTH 5.2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481286", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7733830435244, + "Longitude": 106.722918748856 }, { "CamId": "58175c81edeb6c0012a2d5c2", "CamName": "TTH 4.2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58175c81edeb6c0012a2d5c2", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7757228548636, + "Longitude": 106.727376580238 }, { "CamId": "5d8cd542766c880017188948", "CamName": "TTH 146", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8511456568495, + "Longitude": 106.757980585098 }, { "CamId": "662b4ecb1afb9c00172d8692", "CamName": "TTH 335", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7576784340111, + "Longitude": 106.658009290695 }, { "CamId": "662b54711afb9c00172d8d4f", "CamName": "TTH 351", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8160870038835, + "Longitude": 106.680099964142 }, { "CamId": "56de42f611f398ec0c48129e", "CamName": "TTH 22.1", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48129e", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.7785053, + "Longitude": 106.7572618 }, { "CamId": "5701e22bc4350a1100e26f6c", "CamName": "TTH 1a", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5701e22bc4350a1100e26f6c", - "ManagementUnit": "Khu quản lý giao thông đô thị số 1" + "ManagementUnit": "Khu quản lý giao thông đô thị số 1", + "Latitude": 10.7671171078657, + "Longitude": 106.699680089951 }, { "CamId": "6623f44f6f998a001b2528aa", "CamName": "TTH 299.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8349709243101, + "Longitude": 106.765716075897 }, { "CamId": "56de42f611f398ec0c481290", "CamName": "TTH 12.1", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481290", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7493356862526, + "Longitude": 106.673292517662 }, { "CamId": "587c8c20b807da0011e33d47", "CamName": "TTH 34.3", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587c8c20b807da0011e33d47", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7994466709843, + "Longitude": 106.674934029579 }, { "CamId": "58746488b807da0011e33cd7", "CamName": "TTH 21.10", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58746488b807da0011e33cd7", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8743050851613, + "Longitude": 106.748507022858 }, { "CamId": "56de42f611f398ec0c48128f", "CamName": "TTH 11.1", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48128f", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.751960277381, + "Longitude": 106.677197813988 }, { "CamId": "56de42f611f398ec0c481291", "CamName": "TTH 13.1", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481291", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7503370389747, + "Longitude": 106.668738126755 }, { "CamId": "58ad6961bd82540010390be5", "CamName": "TTH 34.9", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58ad6961bd82540010390be5", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7990461956223, + "Longitude": 106.680378913879 }, { "CamId": "587ee0ecb807da0011e33d50", "CamName": "TTH 44.4", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587ee0ecb807da0011e33d50", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8019970541825, + "Longitude": 106.696482896805 }, { "CamId": "6623f1046f998a001b2527db", "CamName": "TTH 292", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7821519725547, + "Longitude": 106.636122465134 }, { "CamId": "56de42f611f398ec0c48128a", "CamName": "TTH 8.2", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48128a", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7587798913611, + "Longitude": 106.692545413971 }, { "CamId": "5a8259035058170011f6eacf", "CamName": "TTH 117.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7291234621994, + "Longitude": 106.700549125671 }, { "CamId": "58af99abbd82540010390c39", "CamName": "TTH 36.2", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58af99abbd82540010390c39", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7846234574745, + "Longitude": 106.707914471626 }, { "CamId": "58df4e22dc195800111e04bb", "CamName": "TTH 26.5", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58df4e22dc195800111e04bb", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8141637700114, + "Longitude": 106.668593287468 }, { "CamId": "5b632a79fd4edb0019c7dc0f", "CamName": "TTH 133", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7524240581789, + "Longitude": 106.669510602951 }, { "CamId": "662a89ae1afb9c00172d26ad", "CamName": "TTH 314.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7028218314316, + "Longitude": 106.633536815643 }, { "CamId": "63bd1f21bfd3d90017ec3d04", "CamName": "TTH 245", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7052043577961, + "Longitude": 106.737660169601 }, { "CamId": "5d8cd886766c880017188956", "CamName": "TTH 153", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8372522994913, + "Longitude": 106.732848286629 }, { "CamId": "662b50841afb9c00172d880d", "CamName": "TTH 342", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7466952613032, + "Longitude": 106.660562753677 }, { "CamId": "63ae7829bfd3d90017e8f1ac", "CamName": "TTH 188.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7564346782916, + "Longitude": 106.719351410866 }, { "CamId": "587c782db807da0011e33d3b", "CamName": "TTH 33.3", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587c782db807da0011e33d3b", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8010116814233, + "Longitude": 106.738277077675 }, { "CamId": "63b661a3bfd3d90017eaa520", "CamName": "TTH 242.4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7596125693667, + "Longitude": 106.713321805 }, { "CamId": "5874644cb807da0011e33cd5", "CamName": "TTH 21.9", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5874644cb807da0011e33cd5", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8758064874328, + "Longitude": 106.750985383987 }, { "CamId": "5deb576d1dc17d7c5515ad16", "CamName": "ITS 8.4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.780518, + "Longitude": 106.695957 }, { "CamId": "662b55111afb9c00172d8e2e", "CamName": "TTH 353", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8446442571047, + "Longitude": 106.640725135803 }, { "CamId": "6623ee666f998a001b252726", "CamName": "TTH 284", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8442965283387, + "Longitude": 106.640124320984 }, { "CamId": "6623ed9b6f998a001b2526cd", "CamName": "TTH 282.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8260981590362, + "Longitude": 106.680099964142 }, { "CamId": "66b1c1bf779f740018673ef2", "CamName": "TTH 411", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7577416756903, + "Longitude": 106.674488782883 }, { "CamId": "6623e7f06f998a001b25244a", "CamName": "TTH 270", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8105965337175, + "Longitude": 106.709175109863 }, { "CamId": "5d8cd70e766c88001718894e", "CamName": "TTH 149", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8228313977916, + "Longitude": 106.703445911407 }, { "CamId": "5d8cd3b7766c880017188942", "CamName": "TTH 143", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7573411448313, + "Longitude": 106.678184866905 }, { "CamId": "6623e8da6f998a001b2524a6", "CamName": "TTH 273", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8032933150268, + "Longitude": 106.684530973434 }, { "CamId": "63b54909bfd3d90017ea77e4", "CamName": "TTH 211.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7909838807122, + "Longitude": 106.792902946472 }, { "CamId": "63b54aedbfd3d90017ea79c3", "CamName": "TTH 220.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8049478837466, + "Longitude": 106.791937351227 }, { "CamId": "63b54ad1bfd3d90017ea7974", "CamName": "TTH 220.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8045368770814, + "Longitude": 106.792543530464 }, { "CamId": "63b54898bfd3d90017ea77ae", "CamName": "TTH 209", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7912052020479, + "Longitude": 106.796894073486 }, { "CamId": "63b54938bfd3d90017ea77f6", "CamName": "TTH 212", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8055485847835, + "Longitude": 106.817160844803 }, { "CamId": "63b548c3bfd3d90017ea77c0", "CamName": "TTH 210", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.792733368728, + "Longitude": 106.806946992874 }, { "CamId": "5d9de4de766c880017188cbb", "CamName": "TTH 1.8", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.796827763223, + "Longitude": 106.790762543678 }, { "CamId": "58b571c817139d0010f35d5d", "CamName": "TTH 34.11", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58b571c817139d0010f35d5d", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.794472307568, + "Longitude": 106.677948832512 }, { "CamId": "5a6060e08576340017d0660f", "CamName": "TTH 24.7", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8262720340397, + "Longitude": 106.689149737358 }, { "CamId": "662a89211afb9c00172d2636", "CamName": "TTH 312", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.705952846726, + "Longitude": 106.597981452942 }, { "CamId": "59414c883dcfc400106f260b", "CamName": "TTH 38.9", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8018653200436, + "Longitude": 106.645107865334 }, { "CamId": "662b51761afb9c00172d88ef", "CamName": "TTH 346", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8029560769717, + "Longitude": 106.610062122345 }, { "CamId": "662a86a11afb9c00172d2410", "CamName": "TTH 304", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7456043005395, + "Longitude": 106.65856719017 }, { "CamId": "56de42f611f398ec0c481294", "CamName": "TTH 14.2", "Disctrict": "Quận 1", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481294", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7675334356397, + "Longitude": 106.702040433884 }, { "CamId": "5d8cd7bb766c880017188952", "CamName": "TTH 151", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8289275670072, + "Longitude": 106.722747087479 }, { "CamId": "5a823ba75058170011f6ea9e", "CamName": "TTH 100.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7682501504601, + "Longitude": 106.695769429207 }, { "CamId": "6623f51a6f998a001b252900", "CamName": "TTH 301", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8403450366927, + "Longitude": 106.716363430023 }, { "CamId": "649da72ca6068200171a6dbb", "CamName": "TTH 247", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7710748334425, + "Longitude": 106.70635342598 }, { "CamId": "662b4d781afb9c00172d8571", "CamName": "TTH 330", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7589116443632, + "Longitude": 106.677567958832 }, { "CamId": "66b1c311779f740018674083", "CamName": "TTH 413.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7543371464344, + "Longitude": 106.634910106659 }, { "CamId": "6623e88c6f998a001b25248b", "CamName": "TTH 272", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8111972234488, + "Longitude": 106.676033735275 }, { "CamId": "5abbb6d698d8fc001102dfc8", "CamName": "TTH 249.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7314425344033, + "Longitude": 106.720451116562 }, { "CamId": "5a8269c45058170011f6eae4", "CamName": "TTH 124.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7409610852775, + "Longitude": 106.7367374897 }, { "CamId": "5deb576d1dc17d7c5515ad04", "CamName": "ITS 3.51", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7860304558102, + "Longitude": 106.690008044243 }, { "CamId": "662b58bd1afb9c00172d9119", "CamName": "TTH 362", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7937556552044, + "Longitude": 106.66899561882 }, { "CamId": "662b86c41afb9c00172dd31c", "CamName": "TTH 406", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7918902432446, + "Longitude": 106.691054105759 }, { "CamId": "58744f1fb807da0011e33cbd", "CamName": "TTH 43.1", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58744f1fb807da0011e33cbd", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7459679545654, + "Longitude": 106.668984889984 }, { "CamId": "6623f14b6f998a001b2527f0", "CamName": "TTH 293", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8037570167341, + "Longitude": 106.632571220398 }, { "CamId": "6623ef2b6f998a001b252753", "CamName": "TTH 286", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8498285289366, + "Longitude": 106.587703227997 }, { "CamId": "662b51d21afb9c00172d89bf", "CamName": "TTH 348", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7521974381054, + "Longitude": 106.610255241394 }, { "CamId": "662b5b8c1afb9c00172d92ca", "CamName": "TTH 369", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7884439432433, + "Longitude": 106.617207527161 }, { "CamId": "662b52131afb9c00172d8a23", "CamName": "TTH 349", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7581738268099, + "Longitude": 106.606982946396 }, { "CamId": "5a82602c5058170011f6ead9", "CamName": "TTH 119.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8135788937036, + "Longitude": 106.579173803329 }, { "CamId": "662b5adc1afb9c00172d925b", "CamName": "TTH 366.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8235795946401, + "Longitude": 106.629202365875 }, { "CamId": "662b5c141afb9c00172d93d7", "CamName": "TTH 372", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7965800987319, + "Longitude": 106.613742113113 }, { "CamId": "63b3c59fbfd3d90017e9ace8", "CamName": "TTH 207", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8125250596398, + "Longitude": 106.577596664429 }, { "CamId": "662b51201afb9c00172d889a", "CamName": "TTH 345", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7654465210122, + "Longitude": 106.60413980484 }, { "CamId": "662b5c981afb9c00172d94c0", "CamName": "TTH 373", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7994361321658, + "Longitude": 106.619310379028 }, { "CamId": "589add0fb3bf7600110283ae", "CamName": "TTH 46.2", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589add0fb3bf7600110283ae", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8556133114939, + "Longitude": 106.623339056969 }, { "CamId": "58b5510817139d0010f35d4e", "CamName": "TTH 21.15", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58b5510817139d0010f35d4e", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8254711543978, + "Longitude": 106.71435713768 }, { "CamId": "5875d4f8b807da0011e33d1a", "CamName": "TTH 42.4", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5875d4f8b807da0011e33d1a", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7372717600591, + "Longitude": 106.670937538147 }, { "CamId": "5d8cd98d766c88001718895a", "CamName": "TTH 155", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8533952979021, + "Longitude": 106.751462817192 }, { "CamId": "5d9ddec9766c880017188c9c", "CamName": "TTH 173", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8021551350728, + "Longitude": 106.711503267288 }, { "CamId": "63ae75debfd3d90017e8f082", "CamName": "TTH 181.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7685031082248, + "Longitude": 106.683892607689 }, { "CamId": "5deb576d1dc17d7c5515ad0a", "CamName": "ITS 6.52", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.795418, + "Longitude": 106.655729 }, { "CamId": "58af8b69bd82540010390c28", "CamName": "TTH 35.4", "Disctrict": "Quận 3", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58af8b69bd82540010390c28", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7832744191822, + "Longitude": 106.69091463089 }, { "CamId": "5d8cda2e766c88001718895e", "CamName": "TTH 157", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.840819218446, + "Longitude": 106.74354493618 }, { "CamId": "6623e7526f998a001b252407", "CamName": "TTH 296", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7692092808607, + "Longitude": 106.669843196869 }, { "CamId": "662b58401afb9c00172d90f5", "CamName": "TTH 360", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8006480938667, + "Longitude": 106.661823391914 }, { "CamId": "6623e31e6f998a001b252250", "CamName": "TTH 255", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7816671586319, + "Longitude": 106.681677103043 }, { "CamId": "662a88a01afb9c00172d25d1", "CamName": "TTH 311", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.788032914001, + "Longitude": 106.517043113709 }, { "CamId": "63b66089bfd3d90017eaa4bd", "CamName": "TTH 241", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8114079914905, + "Longitude": 106.695753335953 }, { "CamId": "5a825b7d5058170011f6ead4", "CamName": "TTH 117.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7282010989927, + "Longitude": 106.700441837311 }, { "CamId": "662a8b061afb9c00172d27d7", "CamName": "TTH 316", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7232729964823, + "Longitude": 106.660873889923 }, { "CamId": "56df8198c062921100c143dd", "CamName": "TTH 32.3", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df8198c062921100c143dd", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8492753334826, + "Longitude": 106.773784160614 }, { "CamId": "56f8d743025e9511002786c5", "CamName": "TTH 29.2", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56f8d743025e9511002786c5", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8128675561166, + "Longitude": 106.664929389954 }, { "CamId": "5a823bd55058170011f6eaa0", "CamName": "TTH 100.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7675334356397, + "Longitude": 106.695860624313 }, { "CamId": "5b8b2323ca057700116405d0", "CamName": "TTH 29.4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8129465937096, + "Longitude": 106.664902567863 }, { "CamId": "662a896e1afb9c00172d2674", "CamName": "TTH 313", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7302724592873, + "Longitude": 106.577425003052 }, { "CamId": "587ee2aeb807da0011e33d52", "CamName": "TTH 44.1", "Disctrict": "Quận Phú Nhuận", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587ee2aeb807da0011e33d52", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8020392090947, + "Longitude": 106.683232784271 }, { "CamId": "6623f5876f998a001b25291a", "CamName": "TTH 302.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8021340576256, + "Longitude": 106.745932102203 }, { "CamId": "5d8cdb4b766c880017188966", "CamName": "TTH 161", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7980555437486, + "Longitude": 106.658374071121 }, { "CamId": "5ad068b198d8fc001102e278", "CamName": "TTH 118.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6524259645754, + "Longitude": 106.654586791992 }, { "CamId": "5a606a958576340017d06621", "CamName": "TTH 44.8", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8028664980496, + "Longitude": 106.709464788437 }, { "CamId": "6623e5776f998a001b252337", "CamName": "TTH 262", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7845127944049, + "Longitude": 106.678436994553 }, { "CamId": "6623f4df6f998a001b2528eb", "CamName": "TTH 300", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8361932799182, + "Longitude": 106.713809967041 }, { "CamId": "56de42f611f398ec0c48127f", "CamName": "TTH 2.1", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48127f", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.791531914198, + "Longitude": 106.751103401184 }, { "CamId": "56de42f611f398ec0c48127e", "CamName": "TTH 1.2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48127e", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8062546704304, + "Longitude": 106.754064559937 }, { "CamId": "56de42f611f398ec0c48127d", "CamName": "TTH 1.1", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48127d", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8049847689326, + "Longitude": 106.752707362175 }, { "CamId": "56de42f611f398ec0c481282", "CamName": "TTH 3.2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481282", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7876851195878, + "Longitude": 106.74994468689 }, { "CamId": "66b1c1f2779f740018673f0d", "CamName": "TTH 412", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7611040058688, + "Longitude": 106.683179140091 }, { "CamId": "63b660f8bfd3d90017eaa4ea", "CamName": "TTH 242.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7526506780822, + "Longitude": 106.723862886429 }, { "CamId": "56de42f611f398ec0c481280", "CamName": "TTH 2.2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481280", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.792627978172, + "Longitude": 106.751446723938 }, { "CamId": "5d9de3c2766c880017188cb3", "CamName": "TTH 1.5", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7929019935409, + "Longitude": 106.754863858223 }, { "CamId": "5d9dde1f766c880017188c98", "CamName": "TTH 171", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8001422321862, + "Longitude": 106.711294054985 }, { "CamId": "5d9ddf49766c880017188ca0", "CamName": "TTH 175", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8012277259948, + "Longitude": 106.712324023247 }, { "CamId": "56de42f611f398ec0c48129f", "CamName": "TTH 22.2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48129f", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.7731722, + "Longitude": 106.7702866 }, { "CamId": "5d9de43b766c880017188cb6", "CamName": "TTH 1.6", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7965537514336, + "Longitude": 106.778896450996 }, { "CamId": "649da495a6068200171a6cb6", "CamName": "TTH 230.3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7817936319045, + "Longitude": 106.740009784698 }, { "CamId": "662a8a661afb9c00172d2762", "CamName": "TTH 315", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6939873445986, + "Longitude": 106.610469818115 }, { "CamId": "597bf0b8faa7ea0011c7c293", "CamName": "TTH 98", "Disctrict": "Management Center of Sai Gon River Tunnel", "SnapshotUrl": "tth", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8163926125139, + "Longitude": 106.791679859161 }, { "CamId": "5a823e425058170011f6eaa4", "CamName": "TTH 102.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7917743133057, + "Longitude": 106.695774793625 }, { "CamId": "662a8c381afb9c00172d28b6", "CamName": "TTH 318", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7388529049553, + "Longitude": 106.689584255218 }, { "CamId": "63ae7966bfd3d90017e8f240", "CamName": "TTH 193", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7828791919741, + "Longitude": 106.672096252441 }, { "CamId": "63ae7938bfd3d90017e8f226", "CamName": "TTH 192", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7470852656437, + "Longitude": 106.595476269722 }, { "CamId": "662b52a31afb9c00172d8b01", "CamName": "TTH 350", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.846467192202, + "Longitude": 106.670604944229 }, { "CamId": "662a87df1afb9c00172d2522", "CamName": "TTH 307", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7478547321893, + "Longitude": 106.585021018982 }, { "CamId": "662a873b1afb9c00172d2483", "CamName": "TTH 305.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7489509551128, + "Longitude": 106.581823825836 }, { "CamId": "662a87641afb9c00172d24b0", "CamName": "TTH 305.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7492250102216, + "Longitude": 106.580879688263 }, { "CamId": "5a6082698576340017d06678", "CamName": "IDICO-QL1 16", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7947673992211, + "Longitude": 106.59654378891 }, { "CamId": "65e0556b6b18080018db665e", "CamName": "TTH 252", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7689774034613, + "Longitude": 106.694637537003 }, { "CamId": "662b4faa1afb9c00172d875e", "CamName": "TTH 339", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7497256871815, + "Longitude": 106.649479866028 }, { "CamId": "662b84771afb9c00172dd076", "CamName": "TTH 396", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7790322866967, + "Longitude": 106.700012683868 }, { "CamId": "591c6833a6bfb500119400a3", "CamName": "TTH 48.8", "Disctrict": "Huyện Nhà Bè", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/591c6833a6bfb500119400a3", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.890809558636, + "Longitude": 106.613377332687 }, { "CamId": "5b5995a3fd4edb0019c7d9ab", "CamName": "TTH 15.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7489404145267, + "Longitude": 106.660348176956 }, { "CamId": "56de42f611f398ec0c481293", "CamName": "TTH 14.1", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481293", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7499786604875, + "Longitude": 106.663234233856 }, { "CamId": "56de42f611f398ec0c48128d", "CamName": "TTH 2a", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c48128d", - "ManagementUnit": "Khu quản lý giao thông đô thị số 1" + "ManagementUnit": "Khu quản lý giao thông đô thị số 1", + "Latitude": 10.7505847415039, + "Longitude": 106.660031676292 }, { "CamId": "56de42f611f398ec0c481297", "CamName": "TTH 13.2", "Disctrict": "Quận 5", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c481297", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7503686605855, + "Longitude": 106.670079231262 }, { "CamId": "56de42f611f398ec0c481295", "CamName": "TTH 15.1", "Disctrict": "Management Center of Sai Gon River Tunnel", "SnapshotUrl": "tth", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7490827124077, + "Longitude": 106.659994125366 }, { "CamId": "5a824ee15058170011f6eab6", "CamName": "TTH 116.1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8306083386046, + "Longitude": 106.67790055275 }, { "CamId": "5deb576d1dc17d7c5515ad0e", "CamName": "ITS 7.6", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.774969, + "Longitude": 106.686639 }, { "CamId": "662b7d0c1afb9c00172dc6a6", "CamName": "TTH 375", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7652778808151, + "Longitude": 106.690131425858 }, { "CamId": "597bf277faa7ea0011c7c29f", "CamName": "TTH 99", "Disctrict": "Management Center of Sai Gon River Tunnel", "SnapshotUrl": "tth", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8208924000834, + "Longitude": 106.792302131653 }, { "CamId": "662b80b91afb9c00172dcb5b", "CamName": "TTH 382", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7715702042204, + "Longitude": 106.693022847176 }, { "CamId": "5b19d34faf4ff60011d6ea52", "CamName": "TTH 120.2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7625638146636, + "Longitude": 106.708472371101 }, { "CamId": "595dc29c3dcfc400106f2894", "CamName": "Quốc lộ 1 - Rạch Láng Le 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8610818827294, + "Longitude": 106.686397790909 }, { "CamId": "5a605f828576340017d06608", "CamName": "Nguyễn Thái Sơn - Nguyễn Văn Nghi 1", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8243119827038, + "Longitude": 106.686521172523 }, { "CamId": "6818833d6dfb4b0018f8ee9d", "CamName": "Mai Bá Hương - Kênh 4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7736992353084, + "Longitude": 106.509790420532 }, { "CamId": "68188fe36dfb4b0018f90520", "CamName": "Trần Văn Giàu - đường Kênh 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7536098581137, + "Longitude": 106.575021743774 }, { "CamId": "68188a226dfb4b0018f8f70a", "CamName": "Trần Đại Nghĩa - Võ Trần Chí", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7304200365785, + "Longitude": 106.577017307281 }, { "CamId": "681889a96dfb4b0018f8f67e", "CamName": "Trần Văn Giàu - cầu Tân Tạo", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7590644777735, + "Longitude": 106.571368575096 }, { "CamId": "56de42f611f398ec0c4812a2", "CamName": "Nút giao Mỹ Thủy 2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56de42f611f398ec0c4812a2", - "ManagementUnit": "Khu quản lý giao thông đô thị số 2" + "ManagementUnit": "Khu quản lý giao thông đô thị số 2", + "Latitude": 10.7701157, + "Longitude": 106.7755866 }, { "CamId": "6922934b44912200174bc7ec", "CamName": "Quốc Lộ 51 - Nguyễn Huệ", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.5777657286059, + "Longitude": 107.055587768555 }, { "CamId": "595dd8463dcfc400106f28b2", "CamName": "Quốc lộ 1 - Đường Lê Thị Riêng 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8619248135124, + "Longitude": 106.654415130615 }, { "CamId": "67e217c43215f90017863bc8", "CamName": "Nguyễn Thị Định - Đường C (20-1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7659102810674, + "Longitude": 106.77956700325 }, { "CamId": "5deb576d1dc17d7c5515ad00", "CamName": "Điện Biên Phủ - Hai Bà Trưng", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7866311946675, + "Longitude": 106.693720221519 }, { "CamId": "5a6088218576340017d06693", "CamName": "QL1 - Nút giao An Lạc 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7235049089888, + "Longitude": 106.601693630219 }, { "CamId": "595dc70d3dcfc400106f289a", "CamName": "Quốc lộ 1 - Ngã 4 Ga", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8615244216871, + "Longitude": 106.679971218109 }, { "CamId": "595dd6093dcfc400106f28ad", "CamName": "Quốc lộ 1 - Cầu Bến Cát 2", "Disctrict": "N/A", "SnapshotUrl": "streaming", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.861629788009, + "Longitude": 106.663513183594 }, { "CamId": "681885ff6dfb4b0018f8f1ee", "CamName": "Trần Đại Nghĩa - Kênh A", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7541368788109, + "Longitude": 106.519575119019 }, { "CamId": "5d8cd7fb766c880017188954", "CamName": "Phạm Văn Đồng - Đường 20 (hướng đi Sân bay)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8291383225836, + "Longitude": 106.722366213799 }, { "CamId": "6318287ec9eae60017a19f36", "CamName": "Nguyễn Thị Minh Khai - Đinh Tiên Hoàng 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7865626894198, + "Longitude": 106.701729297638 }, { "CamId": "6792f3058c5ed4001b27f58e", "CamName": "Trần Văn Giàu - Cầu Đôi", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7937661942221, + "Longitude": 106.505670547485 }, { "CamId": "587476e3b807da0011e33cee", "CamName": "Cộng Hòa - Út Tịch 1", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587476e3b807da0011e33cee", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8010380283306, + "Longitude": 106.657853722572 }, { "CamId": "5d9de49d766c880017188cb9", "CamName": "Cao tốc LTDG - Đỗ Xuân Hợp 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7961796195486, + "Longitude": 106.778848171234 }, { "CamId": "681826506dfb4b0018f83e64", "CamName": "Mai Bá Hương - Kênh 3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7767346595405, + "Longitude": 106.511378288269 }, { "CamId": "5a6083198576340017d0667a", "CamName": "QL1 - Tân Kỳ Tân Quý 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7900142805592, + "Longitude": 106.595411896706 }, { "CamId": "6922924644912200174bc737", "CamName": "Quốc Lộ 51 - Mỹ Xuân - Ngãi Giao 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.622985857355, + "Longitude": 107.055587768555 }, { "CamId": "681885a26dfb4b0018f8f176", "CamName": "Lê Đình Chi - Kênh 4", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.766405660338, + "Longitude": 106.524939537048 }, { "CamId": "5a825ded5058170011f6ead7", "CamName": "Quốc lộ 50 - Cầu Ông Thìn (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6484508725221, + "Longitude": 106.655831336975 }, { "CamId": "68188bb96dfb4b0018f8fdbf", "CamName": "Vĩnh Lộc - Trần Hải Phụng", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7860515343869, + "Longitude": 106.55412197113 }, { "CamId": "56df833ac062921100c143e1", "CamName": "Nguyễn Hữu Thọ - Nguyễn Thị Thập 2", "Disctrict": "Quận 7", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df833ac062921100c143e1", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7403707962704, + "Longitude": 106.701048016548 }, { "CamId": "6792efe48c5ed4001b27f336", "CamName": "Xa Lộ Hà Nội - Cổng ĐH An ninh", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8735359428243, + "Longitude": 106.808030605316 }, { "CamId": "595f89323dcfc400106f28ee", "CamName": "Quốc lộ 1 - BQB Cầu vượt Quang Trung A (hướng An Sương)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8532003648042, + "Longitude": 106.633172035217 }, { "CamId": "595d98fc3dcfc400106f287b", "CamName": "Quốc lộ 1 - An Phú Đông 13 (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8589376668263, + "Longitude": 106.711578369141 }, { "CamId": "6818887f6dfb4b0018f8f54c", "CamName": "Trần Văn Giàu - Võ Văn Vân", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7629906888237, + "Longitude": 106.567468643188 }, { "CamId": "68eddd0a230ee50017d040b2", "CamName": "Mỹ Phước Tân Vạn - Phạm Ngọc Thạch (2)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 11.00805287907, + "Longitude": 106.669006347656 }, { "CamId": "68a587d54e89b100173b6021", "CamName": "Tỉnh Lộ 8 - Tỉnh Lộ 15 (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9836400150392, + "Longitude": 106.576770544052 }, { "CamId": "692291f044912200174bc703", "CamName": "Quốc Lộ 51 - Đường B1 - Đường N2-2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6341211316771, + "Longitude": 107.048034667969 }, { "CamId": "5822b5ededeb6c0012a2d66a", "CamName": "Mai Chí Thọ - Nguyễn Cơ Thạch 1", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/5822b5ededeb6c0012a2d66a", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7732144077704, + "Longitude": 106.722586154938 }, { "CamId": "595d984b3dcfc400106f2879", "CamName": "Quốc lộ 1 - An Phú Đông 13 (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8589534719139, + "Longitude": 106.711691021919 }, { "CamId": "5b25a268f13cba001124e713", "CamName": "Nam Kỳ Khởi Nghĩa - Lê Thánh Tôn", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7747057769436, + "Longitude": 106.699481606483 }, { "CamId": "662b7f651afb9c00172dc992", "CamName": "11B Nguyễn Bỉnh Khiêm", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7857353555811, + "Longitude": 106.706600189209 }, { "CamId": "6818884f6dfb4b0018f8f50f", "CamName": "Trần Đại Nghĩa - Kênh C", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7344045962095, + "Longitude": 106.559443473816 }, { "CamId": "585b2baec3f96200127dc508", "CamName": "Nguyễn Văn Linh - Huỳnh Tấn Phát 2", "Disctrict": "Quận 7", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/585b2baec3f96200127dc508", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7525452734972, + "Longitude": 106.728331446648 }, { "CamId": "5a606cd08576340017d06628", "CamName": "BX Miền Đông - Đinh Bộ Lĩnh 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8144114199963, + "Longitude": 106.71005487442 }, { "CamId": "662b80051afb9c00172dcaf6", "CamName": "Nguyễn Trãi - Nguyễn Cư Trinh", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7625269242757, + "Longitude": 106.686580181122 }, { "CamId": "589d0bceb3bf7600110283d6", "CamName": "Cầu Sài Gòn 2 (dạ cầu)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7990303873734, + "Longitude": 106.727387309074 }, { "CamId": "5d8cd253766c88001718893a", "CamName": "Nguyễn Tri Phương - Hùng Vương", "Disctrict": "N/A", "SnapshotUrl": "tth_axis", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7576520833075, + "Longitude": 106.669279932976 }, { "CamId": "68188af96dfb4b0018f8f8e4", "CamName": "Võ Trần Chí - Kênh 10 (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7087675702381, + "Longitude": 106.572275161743 }, { "CamId": "5deb576d1dc17d7c5515ad19", "CamName": "Nguyễn Thị Minh Khai - Mạc Đĩnh Chi", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.784426, + "Longitude": 106.699659 }, { "CamId": "5b6329fdfd4edb0019c7dc0b", "CamName": "Nguyễn Trãi - Nguyễn Văn Cừ", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7596494601112, + "Longitude": 106.684375405312 }, { "CamId": "59ca2fa302eb490011a0a3fd", "CamName": "QL1 - cầu Bình Thuận", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7877852422632, + "Longitude": 106.595111489296 }, { "CamId": "58abbee5bd82540010390ba2", "CamName": "Cầu Sài Gòn 5 (dạ cầu Thủ Đức)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7991621227557, + "Longitude": 106.729398965836 }, { "CamId": "58d7b756c1e33c00112b320d", "CamName": "Nút giao Chợ Đệm 2 (CT Trung Lương - Bùi Thanh Khiết)", "Disctrict": "Huyện Bình Chánh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58d7b756c1e33c00112b320d", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6860698233787, + "Longitude": 106.57566010952 }, { "CamId": "6792f3cf8c5ed4001b27f61e", "CamName": "Tỉnh Lộ 8 - Cầu Phú Cường", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9771309811361, + "Longitude": 106.643643379211 }, { "CamId": "58175ac4edeb6c0012a2d5bb", "CamName": "Mai Chí Thọ - Đồng Văn Cống 1", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58175ac4edeb6c0012a2d5bb", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.7878800952932, + "Longitude": 106.749606728554 }, { "CamId": "5d8cd614766c88001718894a", "CamName": "Lê Quang Định - Nơ Trang Long", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8081937627675, + "Longitude": 106.69519007206 }, { "CamId": "68188cbf6dfb4b0018f900e9", "CamName": "Võ Văn Vân - Liên Ấp 123", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7939137404315, + "Longitude": 106.576459407806 }, { "CamId": "67e217ea3215f90017863bf1", "CamName": "Nguyễn Thị Định - Đường C (20-2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7660631109292, + "Longitude": 106.779545545578 }, { "CamId": "68ede6d0230ee50017d04d4c", "CamName": "Đại lộ Bình Dương - ngã tư chợ Đình (1)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9846089851621, + "Longitude": 106.66610956192 }, { "CamId": "6922939144912200174bc80c", "CamName": "Quốc Lộ 51 - đường vào cảng Cái Mép", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.563928386027, + "Longitude": 107.059192657471 }, { "CamId": "595d9ba43dcfc400106f2880", "CamName": "Quốc lộ 1 - An Phú Đông 12 (2)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": "1" + "ManagementUnit": "1", + "Latitude": 10.8591062543837, + "Longitude": 106.705430746078 }, { "CamId": "5deb576d1dc17d7c5515ad0d", "CamName": "Lê Lợi - Pasteur", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.774816, + "Longitude": 106.700909 }, { "CamId": "6818863c6dfb4b0018f8f235", "CamName": "Trần Đại Nghĩa - Mai Bá Hương", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7650143803183, + "Longitude": 106.498975753784 }, { "CamId": "68188a816dfb4b0018f8f769", "CamName": "Võ Trần Chí - Thế Lữ 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.702737493872, + "Longitude": 106.570858955383 }, { "CamId": "595da2853dcfc400106f2883", "CamName": "Quốc lộ 1 - Đường 15 (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8601019727034, + "Longitude": 106.698827147484 }, { "CamId": "585b2b1ec3f96200127dc505", "CamName": "Nguyễn Văn Linh - Huỳnh Tấn Phát 1", "Disctrict": "Quận 7", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/585b2b1ec3f96200127dc505", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7528825680397, + "Longitude": 106.728594303131 }, { "CamId": "595dd9ac3dcfc400106f28b4", "CamName": "Quốc lộ 1 - BQB Trước UBND Q12 (hướng đi An Sương)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8619827649163, + "Longitude": 106.653299331665 }, { "CamId": "5d8cd8e2766c880017188958", "CamName": "Phạm Văn Đồng - Hiệp Bình (hướng đi Sân bay)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8374050930507, + "Longitude": 106.732848286629 }, { "CamId": "681888b66dfb4b0018f8f58c", "CamName": "VX Trần Văn Giàu - Tỉnh Lộ 10", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7617627652255, + "Longitude": 106.5702688694 }, { "CamId": "5b6c15b8ca0577001163fe39", "CamName": "Nguyễn Hữu Cảnh 3 (Hầm chui)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7911261587324, + "Longitude": 106.718181967735 }, { "CamId": "58df4c2bdc195800111e04b7", "CamName": "Thăng Long - Phan Thúc Duyện", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58df4c2bdc195800111e04b7", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8044525679523, + "Longitude": 106.660938262939 }, { "CamId": "595dd3a63dcfc400106f28a7", "CamName": "Quốc lộ 1 - Đường Tô Ngọc Vân 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8617667641718, + "Longitude": 106.671018004417 }, { "CamId": "68ede5d4230ee50017d04c24", "CamName": "Đại lộ Bình Dương - ngã 5 Phước Kiến (1)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9929925503389, + "Longitude": 106.655187606812 }, { "CamId": "662b56c51afb9c00172d9071", "CamName": "Bạch Đằng - Đặng Văn Sâm", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8146485314923, + "Longitude": 106.671742200851 }, { "CamId": "5deb576d1dc17d7c5515ad12", "CamName": "Nam Kỳ Khởi Nghĩa - Lê Lợi", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7731, + "Longitude": 106.70004 }, { "CamId": "681887346dfb4b0018f8f36a", "CamName": "Trần Văn Giàu - Lê Đình Chi", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7803181070833, + "Longitude": 106.532835960388 }, { "CamId": "68188ab56dfb4b0018f8f7be", "CamName": "Võ Trần Chí - Thế Lữ 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7025688186824, + "Longitude": 106.571438312531 }, { "CamId": "595da7783dcfc400106f2888", "CamName": "Quốc lộ 1 - Đường Vườn Lài 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": "1" + "ManagementUnit": "1", + "Latitude": 10.8607341730882, + "Longitude": 106.691998243332 }, { "CamId": "66b1c22f779f740018673f6e", "CamName": "Vòng xoay Phú Lâm (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7536309389593, + "Longitude": 106.633923053741 }, { "CamId": "6818901a6dfb4b0018f9058a", "CamName": "Tỉnh Lộ 10 - cầu Tân Tạo", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7601026888897, + "Longitude": 106.574045419693 }, { "CamId": "68188bf46dfb4b0018f8ff12", "CamName": "Vĩnh Lộc - kênh Trung Ương", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7908574113044, + "Longitude": 106.555495262146 }, { "CamId": "68a589a54e89b100173b6267", "CamName": "Tỉnh Lộ 8 - Sông Lu (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9802907242505, + "Longitude": 106.610898971558 }, { "CamId": "68ede60a230ee50017d04c69", "CamName": "Đại lộ Bình Dương - ngã 5 Phước Kiến (2)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9929293585276, + "Longitude": 106.655960083008 }, { "CamId": "59ca329d02eb490011a0a410", "CamName": "QL1 - Nút giao An Lạc 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": "1" + "ManagementUnit": "1", + "Latitude": 10.7240003578389, + "Longitude": 106.601028442383 }, { "CamId": "5d8cdcf0766c880017188972", "CamName": "Nút giao Lê Đại Hành 1 (Bình Thới)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7688034952946, + "Longitude": 106.651834845543 }, { "CamId": "67e217643215f90017863b73", "CamName": "Nguyễn Thị Định - Cổng A (20)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7601553898663, + "Longitude": 106.786760687828 }, { "CamId": "58af9670bd82540010390c34", "CamName": "Phạm Văn Đồng - Phan Văn Trị 1", "Disctrict": "Quận Bình Thạnh", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58af9670bd82540010390c34", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8212296179772, + "Longitude": 106.693714857101 }, { "CamId": "68188b786dfb4b0018f8face", "CamName": "Láng Le Bàu Cò - Thích Thiện Hòa", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7326336873021, + "Longitude": 106.516485214233 }, { "CamId": "6623f0246f998a001b252797", "CamName": "Âu Cơ - Lũy Bán Bích", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7957475229889, + "Longitude": 106.638236045837 }, { "CamId": "595da7d93dcfc400106f288a", "CamName": "Quốc lộ 1 - Đường Vườn Lài 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8605550497817, + "Longitude": 106.692035794258 }, { "CamId": "68ae7f327d735d00173c74e4", "CamName": "Cầu Bình Triệu (2) hướng đi xòng xoay", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8244858587438, + "Longitude": 106.713847517967 }, { "CamId": "6878bab06145d3001ba517f7", "CamName": "Mai Chí Thọ - Trần Quý Kiên (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7820887360004, + "Longitude": 106.739709377289 }, { "CamId": "68edd621230ee50017d031c5", "CamName": "Mỹ Phước Tân Vạn - Phạm Ngọc Thạch (1)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 11.0087690153912, + "Longitude": 106.668190956116 }, { "CamId": "68ede0cf230ee50017d04657", "CamName": "Mỹ Phước Tân Vạn - Điện Biên Phủ (1)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9974791343309, + "Longitude": 106.682739257813 }, { "CamId": "587479b1b807da0011e33cf9", "CamName": "Trường Chinh - Tây Thạnh 2", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587479b1b807da0011e33cf9", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8189533898328, + "Longitude": 106.628301143646 }, { "CamId": "595ddbbf3dcfc400106f28b8", "CamName": "Quốc lộ 1 - Cầu vượt Tân Thới Hiệp 3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8618299839181, + "Longitude": 106.649796366692 }, { "CamId": "595f8f0b3dcfc400106f28f4", "CamName": "Quốc lộ 1 - BQB Cầu vượt Quang Trung B (hướng Ngã 4 Ga)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8491120089147, + "Longitude": 106.624749898911 }, { "CamId": "6818868b6dfb4b0018f8f298", "CamName": "Trần Văn Giàu - Mai Bá Hương", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7888760503025, + "Longitude": 106.514360904694 }, { "CamId": "5b0b7e1c0e517b00119fd80b", "CamName": "Nguyễn Duy Trinh (Chợ Long Trường)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8067078290005, + "Longitude": 106.823662519455 }, { "CamId": "681887836dfb4b0018f8f3d1", "CamName": "Trần Đại Nghĩa - Kênh B", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7445238765742, + "Longitude": 106.539101600647 }, { "CamId": "681884726dfb4b0018f8f035", "CamName": "Lê Chính Đang - Lê Đình Chi", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7739732679194, + "Longitude": 106.528930664063 }, { "CamId": "68fae32b6b936b001721878b", "CamName": "Võ Chí Công - Cầu Ngọn Ngay (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7832480707178, + "Longitude": 106.788783073425 }, { "CamId": "595dc2f03dcfc400106f2896", "CamName": "Quốc lộ 1 - Rạch Láng Le 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8610924193788, + "Longitude": 106.686226129532 }, { "CamId": "681883f56dfb4b0018f8ef97", "CamName": "Lê Chính Đang 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7790955238933, + "Longitude": 106.518802642822 }, { "CamId": "662b85f51afb9c00172dd1c2", "CamName": "Nguyễn Thị Nghĩa - Lê Lai", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7698416728609, + "Longitude": 106.694197654724 }, { "CamId": "692293f044912200174bc856", "CamName": "Quốc Lộ 51 - Hội Bài Châu Pha", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.5148176695387, + "Longitude": 107.088375091553 }, { "CamId": "68a588c04e89b100173b616b", "CamName": "Tỉnh Lộ 8 - Bến Than (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.979005766129, + "Longitude": 106.617078781128 }, { "CamId": "6922944044912200174bc883", "CamName": "Quốc Lộ 51 - Hoàng Sa 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.4997959914388, + "Longitude": 107.101764678955 }, { "CamId": "68a5894a4e89b100173b6202", "CamName": "Tỉnh Lộ 8 - KCN Tân Quy (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9827974297384, + "Longitude": 106.592037677765 }, { "CamId": "589d0b74b3bf7600110283d4", "CamName": "Cầu Sài Gòn 4 (Thủ Đức 1)", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589d0b74b3bf7600110283d4", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7997417577515, + "Longitude": 106.730428934097 }, { "CamId": "58d8ebd2dc195800111e0429", "CamName": "Cao tốc LTDG - Cầu Bà Dạt 2", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58d8ebd2dc195800111e0429", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7940349390493, + "Longitude": 106.755899190903 }, { "CamId": "6792f9c88c5ed4001b27fb3d", "CamName": "Quốc Lộ 1K - Đường GS1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8880966294513, + "Longitude": 106.776037216187 }, { "CamId": "595d9b3b3dcfc400106f287e", "CamName": "Quốc lộ 1 - An Phú Đông 12 (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8592853785591, + "Longitude": 106.70542538166 }, { "CamId": "662b50e51afb9c00172d886a", "CamName": "Bà Hom - An Dương Vương", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7559709036596, + "Longitude": 106.624610424042 }, { "CamId": "5b0b74280e517b00119fd7f9", "CamName": "Nguyễn Tất Thành - Cảng Sài Gòn", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7581316657523, + "Longitude": 106.715644598007 }, { "CamId": "692293c644912200174bc83b", "CamName": "Quốc Lộ 51 - Xô Viết Nghệ Tĩnh", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.5455338805464, + "Longitude": 107.071552276611 }, { "CamId": "63b54a48bfd3d90017ea7850", "CamName": "Lã Xuân Oai - Lò Lu", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8243804793376, + "Longitude": 106.808009147644 }, { "CamId": "5b6005b6fd4edb0019c7db25", "CamName": "Trần Hưng Đạo - Nguyễn Biểu", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7561079280569, + "Longitude": 106.683527827263 }, { "CamId": "595dd4133dcfc400106f28a9", "CamName": "Quốc lộ 1 - Đường Tô Ngọc Vân 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8619616916798, + "Longitude": 106.671023368835 }, { "CamId": "68188e8d6dfb4b0018f9038b", "CamName": "Thanh Niên - gần trung tâm kiểm định giống cây", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8462459116556, + "Longitude": 106.52880191803 }, { "CamId": "56df857fc062921100c143e7", "CamName": "Trần Quốc Hoàn - Phan Thúc Duyện", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df857fc062921100c143e7", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8026451853041, + "Longitude": 106.663454174995 }, { "CamId": "5deb576d1dc17d7c5515ad1b", "CamName": "Hoàng Diệu - Cầu Ông Lãnh", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.761236, + "Longitude": 106.700404 }, { "CamId": "58744dd9b807da0011e33cb5", "CamName": "Quốc lộ 50 - Tạ Quang Bửu", "Disctrict": "Quận 8", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58744dd9b807da0011e33cb5", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7341621509602, + "Longitude": 106.656190752983 }, { "CamId": "56df8416c062921100c143e4", "CamName": "Nút giao Nguyễn Thái Sơn 2 (Nguyễn Kiệm)", "Disctrict": "Quận Gò Vấp", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df8416c062921100c143e4", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8143956125566, + "Longitude": 106.678592562675 }, { "CamId": "68ede438230ee50017d04a79", "CamName": "Mỹ Phước Tân Vạn - ĐT 743A (1)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8992431864459, + "Longitude": 106.819392442703 }, { "CamId": "68188e466dfb4b0018f902f2", "CamName": "Thanh Niên - gần chùa Liên Hoa", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8295124133666, + "Longitude": 106.52455329895 }, { "CamId": "681883b46dfb4b0018f8ef39", "CamName": "Lê Chính Đang 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7801916331905, + "Longitude": 106.516485214233 }, { "CamId": "589b3ceeb3bf7600110283c3", "CamName": "QL 22 - Nguyễn Văn Bứa 1", "Disctrict": "Huyện Hóc Môn", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589b3ceeb3bf7600110283c3", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8837348196645, + "Longitude": 106.587172150612 }, { "CamId": "595dcab53dcfc400106f289d", "CamName": "Quốc lộ 1 - BQB Trước bến xe Ngã 4 Ga (hướng đi Bình Phước)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.861629788009, + "Longitude": 106.678490638733 }, { "CamId": "68a589c84e89b100173b629d", "CamName": "Tỉnh Lộ 8 - Sông Lu (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9801854000247, + "Longitude": 106.611521244049 }, { "CamId": "6792ef4f8c5ed4001b27f2c0", "CamName": "Quốc Lộ 1 - Ba Làng", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6562217600296, + "Longitude": 106.5558385849 }, { "CamId": "6922928544912200174bc755", "CamName": "Quốc Lộ 51 - Cách Mạng Tháng 8 (Phú Mỹ)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6059447275766, + "Longitude": 107.05472946167 }, { "CamId": "68ede112230ee50017d046a6", "CamName": "Mỹ Phước Tân Vạn - Điện Biên Phủ (2)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9967629705727, + "Longitude": 106.684069633484 }, { "CamId": "6792f1008c5ed4001b27f41f", "CamName": "Quốc Lộ 22 - Võ Văn Điều", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9882952554727, + "Longitude": 106.452713012695 }, { "CamId": "68a587fc4e89b100173b6054", "CamName": "Tỉnh Lộ 8 - Tỉnh Lộ 15 (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9836610796409, + "Longitude": 106.577167510986 }, { "CamId": "58b57a6c17139d0010f35d65", "CamName": "Xa Lộ Hà Nội - Đường D13", "Disctrict": "Quận 9", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/58b57a6c17139d0010f35d65", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8790147216882, + "Longitude": 106.812987327576 }, { "CamId": "631813ebc9eae60017a196b0", "CamName": "Cầu Sài Gòn 8 (Thủ Đức)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7995520591487, + "Longitude": 106.731228232384 }, { "CamId": "68188cfa6dfb4b0018f9013c", "CamName": "Thanh Niên - kênh 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7958318345615, + "Longitude": 106.515905857086 }, { "CamId": "68ede227230ee50017d0480b", "CamName": "Mỹ Phước Tân Vạn - Thủ Khoa Huân (1)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9707271314364, + "Longitude": 106.713767051697 }, { "CamId": "68ede25b230ee50017d0484d", "CamName": "Mỹ Phước Tân Vạn - Thủ Khoa Huân (2)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9698845093027, + "Longitude": 106.715397834778 }, { "CamId": "68188c876dfb4b0018f9007b", "CamName": "Võ Văn Văn - đường 1A", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7782523601788, + "Longitude": 106.573798656464 }, { "CamId": "59ca2ecb02eb490011a0a3f6", "CamName": "QL1 - Trạm thu phí AS-AL 1", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7958581819231, + "Longitude": 106.596806645393 }, { "CamId": "6792f1b78c5ed4001b27f4a9", "CamName": "Quốc Lộ 13 - Cầu Vĩnh Bình", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8682888641092, + "Longitude": 106.716213226318 }, { "CamId": "58d8ec0adc195800111e042b", "CamName": "Cao tốc LTDG - Cầu Bà Dạt 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7935237967208, + "Longitude": 106.756081581116 }, { "CamId": "595dc5ac3dcfc400106f2898", "CamName": "Quốc lộ 1 - BQB Đường dẫn cầu vượt Ngã 4 Ga (hướng đi An Sương)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8613452988547, + "Longitude": 106.682245731354 }, { "CamId": "69047bfa10c1b90017c62ccc", "CamName": "Mỹ Phước - Tân Vận - Huỳnh Văn Lũy (1)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 11.0027871174418, + "Longitude": 106.675293445587 }, { "CamId": "5a8251575058170011f6eabc", "CamName": "Lê Văn Việt - Đình Phong Phú 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8444335124463, + "Longitude": 106.781578660011 }, { "CamId": "5a6061868576340017d06611", "CamName": "Quang Trung - Bà Triệu", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8883494860312, + "Longitude": 106.596280932426 }, { "CamId": "662b82761afb9c00172dcda3", "CamName": "Trần Quang Khải - Trần Nguyên Đán", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7923592320866, + "Longitude": 106.694144010544 }, { "CamId": "5d9ddd49766c880017188c94", "CamName": "Nút giao Hàng Xanh 1 (Viện Máy tính)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8016545453012, + "Longitude": 106.71106338501 }, { "CamId": "6922931044912200174bc7cf", "CamName": "Quốc Lộ 51 - Trần Hưng Đạo", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.5881433260604, + "Longitude": 107.055244445801 }, { "CamId": "6792f16e8c5ed4001b27f482", "CamName": "Cao tốc LT-DG - Trạm thu phí Long Phước", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7858829057319, + "Longitude": 106.850624084473 }, { "CamId": "595f8d813dcfc400106f28f2", "CamName": "Quốc lộ 1 - Quang Trung 2 (hướng đi An Sương)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": "1" + "ManagementUnit": "1", + "Latitude": 10.8529158676222, + "Longitude": 106.632431745529 }, { "CamId": "68a5871d4e89b100173b5f37", "CamName": "Tỉnh Lộ 8 - Hà Duy Phiên (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9733392447841, + "Longitude": 106.639308929443 }, { "CamId": "681885376dfb4b0018f8f0f2", "CamName": "Lê Đình Chi - Kênh 3", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7693146796196, + "Longitude": 106.526484489441 }, { "CamId": "5d9dddb9766c880017188c96", "CamName": "Nút giao Hàng Xanh 2 (ĐH Hồng Bàng)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7998787622235, + "Longitude": 106.706600189209 }, { "CamId": "68188c236dfb4b0018f8ff8f", "CamName": "Vĩnh Lộc - Lại Hùng Cường", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7982347044359, + "Longitude": 106.560130119324 }, { "CamId": "587460aab807da0011e33cc2", "CamName": "Quốc lộ 1 - ĐH Nông Lâm 1", "Disctrict": "Quận Thủ Đức", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/587460aab807da0011e33cc2", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8671930769878, + "Longitude": 106.788429021835 }, { "CamId": "59d3524f02eb490011a0a61b", "CamName": "Cầu vượt Trạm 2 (TĐ ->Q9)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8655019745646, + "Longitude": 106.793106794357 }, { "CamId": "68ede746230ee50017d04dcc", "CamName": "Đại lộ Bình Dương - ngã tư chợ Đình (2)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9835768212251, + "Longitude": 106.666603088379 }, { "CamId": "5b19d2f9af4ff60011d6ea4f", "CamName": "Nguyễn Tất Thành - Xóm Chiếu", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7604452450726, + "Longitude": 106.712136268616 }, { "CamId": "595f91653dcfc400106f28f6", "CamName": "Quốc lộ 1 - Cầu vượt An Sương (Song hành QL 22)", "Disctrict": "N/A", "SnapshotUrl": "streaming", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8454766970536, + "Longitude": 106.618419885635 }, { "CamId": "681888066dfb4b0018f8f4c2", "CamName": "Trần Văn Giàu - Võ Hữu Lợi", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7708851167585, + "Longitude": 106.551203727722 }, { "CamId": "63b548ecbfd3d90017ea77d2", "CamName": "Nguyễn Duy Trinh - Võ Chí Công 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7909628024813, + "Longitude": 106.791990995407 }, { "CamId": "6792f03d8c5ed4001b27f378", "CamName": "Quốc Lộ 50 - Cổng chào Long An", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6424723207925, + "Longitude": 106.657032966614 }, { "CamId": "68ede490230ee50017d04ae5", "CamName": "Mỹ Phước Tân Vạn - ĐT 743A (2)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.898568926428, + "Longitude": 106.820733547211 }, { "CamId": "681889ec6dfb4b0018f8f6cb", "CamName": "Nguyễn Cửu Phú - Trần Đại Nghĩa", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7298402682344, + "Longitude": 106.581319570541 }, { "CamId": "5d9dde8e766c880017188c9a", "CamName": "Nút giao Hàng Xanh 4 (Cầu Văn Thánh - Hàng Xanh)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8015491578746, + "Longitude": 106.713750958443 }, { "CamId": "6922941e44912200174bc86b", "CamName": "Quốc Lộ 51 - Hoàng Sa 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.5004711387125, + "Longitude": 107.099533081055 }, { "CamId": "5d9ddf0f766c880017188c9e", "CamName": "Nút giao Hàng Xanh 6 (Cầu Điện Biên Phủ - Hàng Xanh)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8007429428369, + "Longitude": 106.709132194519 }, { "CamId": "681883866dfb4b0018f8eef6", "CamName": "Mai Bá Hương - Lê Chính Đang", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7817936319045, + "Longitude": 106.512622833252 }, { "CamId": "5a825ab55058170011f6ead2", "CamName": "Nguyễn Văn Linh - Nguyễn Hữu Thọ (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7289864255581, + "Longitude": 106.700313091278 }, { "CamId": "5b0b7bbe0e517b00119fd806", "CamName": "Nguyễn Văn Cừ - Trần Hưng Đạo 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7563925169909, + "Longitude": 106.685357093811 }, { "CamId": "662b7d8a1afb9c00172dc71f", "CamName": "Lê Lai - Phạm Hồng Thái", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7712223907807, + "Longitude": 106.695914268494 }, { "CamId": "5b25a1dcf13cba001124e710", "CamName": "Lý Tự Trọng - Pasteur 1", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7767662783818, + "Longitude": 106.700028777123 }, { "CamId": "68fae2966b936b00172186a6", "CamName": "Võ Chí Công - đường số 5 (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7753434272331, + "Longitude": 106.780436038971 }, { "CamId": "589b46b3b3bf7600110283d0", "CamName": "Hà Huy Giáp - Cầu Phú Long 2", "Disctrict": "Quận 12", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/589b46b3b3bf7600110283d0", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8986321383696, + "Longitude": 106.69497013092 }, { "CamId": "6792f2248c5ed4001b27f4dc", "CamName": "Quốc Lộ 1 - Độc Lập (cổng KCN Sóng Thần)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8756221051048, + "Longitude": 106.751575469971 }, { "CamId": "5deb576d1dc17d7c5515ad1d", "CamName": "Nguyễn Công Trứ - Calmette 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7673753365528, + "Longitude": 106.699846386909 }, { "CamId": "68ae7e997d735d00173c7445", "CamName": "Cầu Bình Triệu (2) hướng đi lên cầu Bình Triệu 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8242434860543, + "Longitude": 106.714024543762 }, { "CamId": "5b0b835b0e517b00119fd80d", "CamName": "Tam Bình (Số 81)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8530844585776, + "Longitude": 106.73014998436 }, { "CamId": "5b6c155aca0577001163fe36", "CamName": "Nguyễn Hữu Cảnh 1 (Dạ cầu)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7974969832732, + "Longitude": 106.720730066299 }, { "CamId": "66b1c190779f740018673ed4", "CamName": "Nguyễn Trãi - Trần Phú", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7550749733738, + "Longitude": 106.67188167572 }, { "CamId": "68a589294e89b100173b61d9", "CamName": "Tỉnh Lộ 8 - KCN Tân Quy (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9827974297384, + "Longitude": 106.591501235962 }, { "CamId": "595d92013dcfc400106f2877", "CamName": "Quốc Lộ 1A - Cầu Bình Phước", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8607025631008, + "Longitude": 106.715140342712 }, { "CamId": "583f976361cfea0012cf68f9", "CamName": "Nguyễn Thị Định - Lê Phụng Hiểu", "Disctrict": "Quận 2", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/583f976361cfea0012cf68f9", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7619577577189, + "Longitude": 106.784512996674 }, { "CamId": "681886f26dfb4b0018f8f31a", "CamName": "Trần Văn Giàu - Thanh Niên", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7899721239599, + "Longitude": 106.514682769775 }, { "CamId": "59ca2f4402eb490011a0a3f9", "CamName": "QL1 - Tân Kỳ Tân Quý 2", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7894293572155, + "Longitude": 106.595449447632 }, { "CamId": "681891e26dfb4b0018f90a69", "CamName": "Nguyễn Cửu Phú - Trần Văn Giàu", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7482763568618, + "Longitude": 106.58505320549 }, { "CamId": "595da2dd3dcfc400106f2885", "CamName": "Quốc lộ 1 - Đường 15 (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8601177777294, + "Longitude": 106.698709130287 }, { "CamId": "595f80e83dcfc400106f28e4", "CamName": "Quốc lộ 1 - BQB Cầu vượt Tân Thới Hiệp B (hướng Bình Phước)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8600387525913, + "Longitude": 106.645692586899 }, { "CamId": "5a607ea98576340017d0666d", "CamName": "QL1-Phan Văn Hớn (Q12)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8343386694508, + "Longitude": 106.607272624969 }, { "CamId": "6922921744912200174bc71d", "CamName": "Quốc Lộ 51 - Mỹ Xuân - Ngãi Giao 1", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6241668905482, + "Longitude": 107.054214477539 }, { "CamId": "68fae2b66b936b00172186e5", "CamName": "Võ Chí Công - đường số 5 (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.775996885673, + "Longitude": 106.780489683151 }, { "CamId": "68a5873d4e89b100173b5f60", "CamName": "Tỉnh Lộ 8 - Hà Duy Phiên (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.973507767433, + "Longitude": 106.639952659607 }, { "CamId": "59ca2e6002eb490011a0a3f3", "CamName": "QL1 - TTDK 50-07V", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8041364085074, + "Longitude": 106.598539352417 }, { "CamId": "5b6c1618ca0577001163fe3c", "CamName": "Nguyễn Hữu Cảnh 2 (Chân cầu)", "Disctrict": "N/A", "SnapshotUrl": "generic", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.795078299042, + "Longitude": 106.718080043793 }, { "CamId": "56df85bdc062921100c143e8", "CamName": "Phan Đình Giót - Phan Thúc Duyện", "Disctrict": "Quận Tân Bình", "SnapshotUrl": "http://camera.thongtingiaothong.vn/api/snapshot/56df85bdc062921100c143e8", - "ManagementUnit": "Management Center of Sai Gon River Tunnel" + "ManagementUnit": "Management Center of Sai Gon River Tunnel", + "Latitude": 10.8015070028935, + "Longitude": 106.665642857552 }, { "CamId": "692291bb44912200174bc6e8", "CamName": "Quốc Lộ 51 - KCN Mỹ Xuân A", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.6487988269479, + "Longitude": 107.040996551514 }, { "CamId": "59ca31d602eb490011a0a40b", "CamName": "QL1 - Hồ Học Lãm", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7342095859156, + "Longitude": 106.602809429169 }, { "CamId": "68ae7ee47d735d00173c7492", "CamName": "Cầu Bình Triệu (2) hướng vòng xoay", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8239589613426, + "Longitude": 106.713756322861 }, { "CamId": "68188b296dfb4b0018f8f9a3", "CamName": "Võ Trần Chí - Kênh 10 (2)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.7087254022885, + "Longitude": 106.572715044022 }, { "CamId": "692292c044912200174bc76d", "CamName": "Quốc Lộ 51 - Nguyễn Văn Linh", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.5993642352589, + "Longitude": 107.054386138916 }, { "CamId": "68188d586dfb4b0018f9018d", "CamName": "Thanh Niên - Phạm Văn Hai", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.8118084503619, + "Longitude": 106.519918441772 }, { "CamId": "68a588984e89b100173b6138", "CamName": "Tỉnh Lộ 8 - Bến Than (1)", "Disctrict": "N/A", "SnapshotUrl": "tth", - "ManagementUnit": false + "ManagementUnit": false, + "Latitude": 10.9791953504657, + "Longitude": 106.616520881653 } ] diff --git a/index.html b/index.html index ddc5167..2c96e10 100644 --- a/index.html +++ b/index.html @@ -586,7 +586,7 @@

Camera giao thông TP.HCM

- +
@@ -762,7 +762,14 @@

Camera giao thông TP.HCM trực tuyến

state.filtered = state.cameras.filter(camera => { const district = getDistrict(camera); const matchesDistrict = !state.district || district === state.district; - const haystack = normalize(camera.CamName + ' ' + district); + const haystack = normalize([ + camera.CamName, + district, + camera.Address, + camera.Ward, + camera.District, + camera.Province + ].filter(Boolean).join(' ')); return matchesDistrict && (!query || haystack.includes(query)); }); diff --git a/scripts/sync-cameras.mjs b/scripts/sync-cameras.mjs new file mode 100644 index 0000000..f1c39c1 --- /dev/null +++ b/scripts/sync-cameras.mjs @@ -0,0 +1,384 @@ +#!/usr/bin/env node + +import { readFile, writeFile } from 'node:fs/promises'; + +const SOURCE_URL = process.env.HCM_CAMERA_SOURCE_URL + || 'https://giaothong.hochiminhcity.gov.vn/ajaxpro/VDMS.Web.Library.AJAX.FolderAjax,VDMS.Web.Library.ashx'; +const DATA_FILE = process.env.CAMERA_DATA_FILE || 'data-camera.json'; +const VIETMAP_API_KEY = (process.env.VIETMAP_API_KEY || '').trim(); +const HCM_TRAFFIC_COOKIE = (process.env.HCM_TRAFFIC_COOKIE || '').trim(); +const MIN_SOURCE_CAMERAS = Number(process.env.MIN_SOURCE_CAMERAS || '700'); +const VIETMAP_REQUEST_DELAY_MS = Number(process.env.VIETMAP_REQUEST_DELAY_MS || '150'); +const VIETMAP_MAX_REQUESTS = Number(process.env.VIETMAP_MAX_REQUESTS || '1000'); +const forceGeocode = process.argv.includes('--force-geocode'); +const skipGeocode = process.argv.includes('--skip-geocode'); + +const SEARCH_PAYLOAD = { + path: '/root/vdms/tangthu/data/layerdata/camera', + isInTree: false, + searchKey: '', + layer: ['CAMERA'], + detail: true, + page: 0, + limit: -1, + filterQuery: ['Publish:true'], + sortby: null, + returnFields: [ + 'CamId', + 'Code', + 'Location', + 'SnapshotUrl', + 'CamType', + 'Disctrict', + 'Publish', + 'ManagementUnit', + 'CamStatus', + 'PTZ', + 'Angle', + 'DisplayName', + ], +}; + +function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +async function fetchWithRetry(url, options = {}, attempts = 3) { + let lastError; + for (let attempt = 1; attempt <= attempts; attempt += 1) { + try { + const response = await fetch(url, options); + if (response.ok) return response; + + const body = (await response.text()).slice(0, 500); + const error = new Error(`HTTP ${response.status}: ${body}`); + if (response.status !== 429 && response.status < 500) throw error; + lastError = error; + } catch (error) { + lastError = error; + } + + if (attempt < attempts) await sleep(500 * (2 ** (attempt - 1))); + } + throw lastError; +} + +async function fetchSource() { + const headers = { + Accept: '*/*', + 'Content-Type': 'application/json; charset=UTF-8', + 'X-AjaxPro-Method': 'SearchQuery', + Origin: 'https://giaothong.hochiminhcity.gov.vn', + Referer: 'https://giaothong.hochiminhcity.gov.vn/', + 'User-Agent': 'camera-hcm-sync/1.0 (+https://camera-hcm.eplus.dev/)', + }; + if (HCM_TRAFFIC_COOKIE) headers.Cookie = HCM_TRAFFIC_COOKIE; + + const response = await fetchWithRetry(SOURCE_URL, { + method: 'POST', + headers, + body: JSON.stringify(SEARCH_PAYLOAD), + redirect: 'follow', + }); + + return response.text(); +} + +function parseAjaxDataTable(input) { + let index = input.indexOf('new Ajax.Web.DataTable('); + if (index < 0) throw new Error('Camera source did not contain Ajax.Web.DataTable data.'); + + const skipWhitespace = () => { + while (index < input.length && /\s/.test(input[index])) index += 1; + }; + + const parseString = () => { + const start = index; + index += 1; + let escaped = false; + while (index < input.length) { + const char = input[index++]; + if (escaped) { + escaped = false; + } else if (char === '\\') { + escaped = true; + } else if (char === '"') { + break; + } + } + return JSON.parse(input.slice(start, index)); + }; + + const parseValue = () => { + skipWhitespace(); + + if (input.startsWith('new Ajax.Web.DataTable(', index)) { + index += 'new Ajax.Web.DataTable('.length; + const cols = parseValue(); + skipWhitespace(); + if (input[index++] !== ',') throw new Error('Invalid DataTable column separator.'); + const rows = parseValue(); + skipWhitespace(); + if (input[index++] !== ')') throw new Error('Invalid DataTable closing token.'); + return { cols, rows }; + } + + if (input[index] === '[') { + index += 1; + const values = []; + skipWhitespace(); + if (input[index] === ']') { + index += 1; + return values; + } + while (true) { + values.push(parseValue()); + skipWhitespace(); + if (input[index] === ']') { + index += 1; + return values; + } + if (input[index++] !== ',') throw new Error('Invalid array separator.'); + } + } + + if (input[index] === '"') return parseString(); + + for (const [literal, value] of [['null', null], ['true', true], ['false', false]]) { + if (input.startsWith(literal, index)) { + index += literal.length; + return value; + } + } + + const number = input.slice(index).match(/^-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/); + if (!number) throw new Error(`Unexpected source token near offset ${index}.`); + index += number[0].length; + return Number(number[0]); + }; + + return parseValue(); +} + +function tableToObjects(table) { + const columns = table.cols.map(column => Array.isArray(column) ? column[0] : column); + return table.rows.map(row => Object.fromEntries(columns.map((column, i) => [column, row[i]]))); +} + +function extractCoordinates(location) { + if (!location || !Array.isArray(location.cols) || !Array.isArray(location.rows) || !location.rows[0]) { + return null; + } + + const columns = location.cols.map(column => Array.isArray(column) ? column[0] : column); + const shapeIndex = columns.indexOf('Shape'); + if (shapeIndex < 0) return null; + + const shape = String(location.rows[0][shapeIndex] ?? ''); + const match = shape.match(/^POINT\(\s*(-?\d+(?:\.\d+)?)\s+(-?\d+(?:\.\d+)?)\s*\)$/i); + if (!match) return null; + + const longitude = Number(match[1]); + const latitude = Number(match[2]); + if (!Number.isFinite(latitude) || !Number.isFinite(longitude)) return null; + if (latitude < -90 || latitude > 90 || longitude < -180 || longitude > 180) return null; + + return { Latitude: latitude, Longitude: longitude }; +} + +function normalizeSourceCamera(source) { + const coordinates = extractCoordinates(source.Location); + return { + CamId: String(source.CamId || ''), + CamName: String(source.DisplayName || source.Code || source.Title || source.CamId || '').trim(), + Disctrict: String(source.Disctrict || 'N/A').trim(), + SnapshotUrl: source.SnapshotUrl ? String(source.SnapshotUrl) : (source.CamType ? String(source.CamType) : ''), + ManagementUnit: source.ManagementUnit ? String(source.ManagementUnit) : false, + ...(coordinates || {}), + }; +} + +function isValidCamId(value) { + return /^[a-f0-9]{24}$/i.test(String(value || '')); +} + +function coordinateChanged(before, after) { + return before.Latitude !== after.Latitude || before.Longitude !== after.Longitude; +} + +function mergeSource(current, sourceRows) { + const currentIds = new Set(); + for (const camera of current) { + if (!isValidCamId(camera.CamId)) throw new Error(`Invalid CamId in current data: ${camera.CamId}`); + if (currentIds.has(camera.CamId)) throw new Error(`Duplicate CamId in current data: ${camera.CamId}`); + currentIds.add(camera.CamId); + } + + const sourceIds = new Set(); + const sourceById = new Map(); + for (const source of sourceRows) { + const normalized = normalizeSourceCamera(source); + if (!isValidCamId(normalized.CamId)) continue; + if (sourceIds.has(normalized.CamId)) throw new Error(`Duplicate CamId in source: ${normalized.CamId}`); + sourceIds.add(normalized.CamId); + sourceById.set(normalized.CamId, normalized); + } + + if (sourceById.size < MIN_SOURCE_CAMERAS) { + throw new Error(`Source safety check failed: expected at least ${MIN_SOURCE_CAMERAS} cameras, got ${sourceById.size}.`); + } + + let added = 0; + let coordinatesUpdated = 0; + const coordinatesChanged = new Set(); + + const merged = current.map(camera => { + const source = sourceById.get(camera.CamId); + if (!source) return camera; + + const next = { ...camera }; + if (Number.isFinite(source.Latitude) && Number.isFinite(source.Longitude)) { + const candidate = { ...next, Latitude: source.Latitude, Longitude: source.Longitude }; + if (coordinateChanged(next, candidate)) { + next.Latitude = source.Latitude; + next.Longitude = source.Longitude; + coordinatesUpdated += 1; + coordinatesChanged.add(camera.CamId); + } + } + + if ((!next.Disctrict || next.Disctrict === 'N/A') && source.Disctrict && source.Disctrict !== 'N/A') { + next.Disctrict = source.Disctrict; + } + return next; + }); + + for (const [id, source] of sourceById) { + if (currentIds.has(id)) continue; + merged.push(source); + currentIds.add(id); + added += 1; + if (Number.isFinite(source.Latitude) && Number.isFinite(source.Longitude)) coordinatesChanged.add(id); + } + + return { + cameras: merged, + sourceIds, + coordinatesChanged, + added, + coordinatesUpdated, + }; +} + +function getBoundary(boundaries, type) { + const item = Array.isArray(boundaries) ? boundaries.find(boundary => Number(boundary?.type) === type) : null; + return item?.full_name || item?.name || ''; +} + +async function reverseGeocode(camera) { + const url = new URL('https://maps.vietmap.vn/api/reverse/v4'); + url.searchParams.set('apikey', VIETMAP_API_KEY); + url.searchParams.set('lat', String(camera.Latitude)); + url.searchParams.set('lng', String(camera.Longitude)); + url.searchParams.set('display_type', '6'); + + const response = await fetchWithRetry(url, { + headers: { + Accept: 'application/json', + 'User-Agent': 'camera-hcm-sync/1.0 (+https://camera-hcm.eplus.dev/)', + }, + }); + const payload = await response.json(); + const result = Array.isArray(payload) ? payload[0] : null; + if (!result) return null; + + const boundaries = result.boundaries || []; + const Ward = getBoundary(boundaries, 2); + const District = getBoundary(boundaries, 1); + const Province = getBoundary(boundaries, 0); + const Address = String(result.display || [result.name, result.address].filter(Boolean).join(', ')).trim(); + + return { Address, Ward, District, Province }; +} + +function needsGeocode(camera, coordinatesChanged) { + if (!Number.isFinite(camera.Latitude) || !Number.isFinite(camera.Longitude)) return false; + if (forceGeocode || coordinatesChanged.has(camera.CamId)) return true; + return !camera.Address || !camera.Ward || !camera.District || !camera.Province; +} + +async function enrichAddresses(cameras, coordinatesChanged) { + if (skipGeocode) return { requested: 0, updated: 0, failed: 0 }; + if (!VIETMAP_API_KEY) { + console.log('VIETMAP_API_KEY is not configured; address enrichment skipped.'); + return { requested: 0, updated: 0, failed: 0 }; + } + + let requested = 0; + let updated = 0; + let failed = 0; + + for (const camera of cameras) { + if (!needsGeocode(camera, coordinatesChanged)) continue; + if (requested >= VIETMAP_MAX_REQUESTS) { + console.warn(`Reached VIETMAP_MAX_REQUESTS=${VIETMAP_MAX_REQUESTS}; remaining cameras will be retried next run.`); + break; + } + + requested += 1; + try { + const location = await reverseGeocode(camera); + if (!location || !location.Address) { + failed += 1; + console.warn(`No VietMap result for ${camera.CamId} (${camera.CamName}).`); + } else { + camera.Address = location.Address; + if (location.Ward) camera.Ward = location.Ward; + if (location.District) { + camera.District = location.District; + if (!camera.Disctrict || camera.Disctrict === 'N/A') camera.Disctrict = location.District; + } + if (location.Province) camera.Province = location.Province; + updated += 1; + } + } catch (error) { + failed += 1; + console.warn(`VietMap failed for ${camera.CamId}: ${error.message}`); + } + + if (VIETMAP_REQUEST_DELAY_MS > 0) await sleep(VIETMAP_REQUEST_DELAY_MS); + } + + return { requested, updated, failed }; +} + +async function main() { + const current = JSON.parse(await readFile(DATA_FILE, 'utf8')); + if (!Array.isArray(current) || current.length === 0) throw new Error(`${DATA_FILE} must contain a non-empty array.`); + + console.log(`Current dataset: ${current.length} cameras.`); + const sourceText = await fetchSource(); + const sourceTable = parseAjaxDataTable(sourceText); + const sourceRows = tableToObjects(sourceTable); + console.log(`Published source: ${sourceRows.length} rows.`); + + const merged = mergeSource(current, sourceRows); + const geocode = await enrichAddresses(merged.cameras, merged.coordinatesChanged); + + const stale = merged.cameras.filter(camera => !merged.sourceIds.has(camera.CamId)).length; + await writeFile(DATA_FILE, `${JSON.stringify(merged.cameras, null, 2)}\n`, 'utf8'); + + console.log(JSON.stringify({ + total: merged.cameras.length, + source: merged.sourceIds.size, + added: merged.added, + coordinatesUpdated: merged.coordinatesUpdated, + staleKept: stale, + geocode, + }, null, 2)); +} + +main().catch(error => { + console.error(error.stack || error.message || error); + process.exitCode = 1; +});