Menu

Tree [6108c0] master /
 History

HTTPS access


File Date Author Commit
 .github 2024-09-14 Kang Lin Kang Lin [6108c0] CI: modify ci
 App 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 Install 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 Package 2024-06-14 Kang Lin Kang Lin [d37e9e] Modify share/org.Rabbit.SerialPortAssistant.des...
 Src 2024-09-13 Kang Lin Kang Lin [07d2e7] FIX: Modify author format (#3)
 Update 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 debian 2024-09-14 Kang Lin Kang Lin [55fea3] Release v1.1.2
 etc 2024-05-28 Kang Lin Kang Lin [e4186b] Modify etc/logqt.ini
 test 2024-05-30 Kang Lin Kang Lin [723e1f] Modify org.Rabbit.TransformCoordinate.desktop
 vcpkg 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 .gitignore 2024-06-03 Kang Lin Kang Lin [f560cf] Rename icon theme rabbit-*
 Authors.md 2024-05-29 Kang Lin Kang Lin [cf9468] Debian: Check whether the RabbitCommon developm...
 Authors_zh_CN.md 2024-05-29 Kang Lin Kang Lin [cf9468] Debian: Check whether the RabbitCommon developm...
 CMakeLists.txt 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 ChangeLog.md 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 License.md 2019-11-05 KangLin KangLin [833107] Modify program struct
 README.md 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 TransformCoordinate.pc.in 2018-08-08 KangLin KangLin [941d24] Add TransformCoordinate.pc
 appveyor.yml 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4
 build_debpackage.sh 2024-06-04 Kang Lin Kang Lin [43f77e] Modify find package RabbitCommon
 deploy.sh 2024-06-19 Kang Lin Kang Lin [ede473] Fix deploy.sh bug
 vcpkg.json 2024-09-13 Kang Lin Kang Lin [dc991f] CI: update actions/download-artifact to 4

Read Me

坐标系统转换

作者:康 林 kl222@126.com

Windows build status
build
GitHub stars
Gitee stars

Github 发行版本
Github 最后发行版本

Github 所有发行版本下载量
从 sourceforge 下载量

Download from sourceforge

介绍

本项目对WGS84、GCJ02、百度坐标系之间进行转换。

  • WGS84:
    为一种大地坐标系,也是目前广泛使用的全球卫星定位系统(GPS)使用的坐标系。
  • GCJ02:
    戏称火星坐标系,是由中国国家测绘局制定的地理坐标系统,是由WGS84加密后得到的坐标系。
  • BD09:
    为百度坐标系,在GCJ02坐标系基础上再次加密。
    其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

本项目还包括一个GPX文件操作模块。

本项目包含:

支持平台

  • Windows 7 SP2 及以后
  • Linux
  • Android
  • MacOS
  • IPHONE

注意: 本人没有 MacOS 和 IPHONE 设备。请有设备的朋友自行测试,并进行反馈。
也可以向本人捐赠资金或相关设备,请联系:kl222@126.com

详见:Qt5 支持平台Qt6 支持平台

下载安装包

编译

下载源码

git clone https://github.com/KangLin/TransformCoordinate.git

依赖

  • 编译工具
  • Qt
  • 编译器
    • For linux or android
      • GNU Make 工具
      • GCC 或者 Clang 编译器
    • For windows
  • CMake
  • 依赖库
  • [必选] Rabbit 公共库(RabbitCommon):
    • 源码: https://github.com/KangLin/RabbitCommon
    • 开发包: https://github.com/KangLin/RabbitCommon/releases

CMake 配置参数

  • [必选] QT_DIR: qt 安装位置
    • [可选] Qt5_DIR: qt5 安装位置
    • [可选] Qt6_DIR: qt6 安装位置
  • [可选] RabbitCommon_DIR: RabbitCommon 源码位置

各平台编译

linux 平台编译说明
  • 编译

    git clone https://github.com/KangLin/RabbitCommon.git
    git clone https://github.com/KangLin/TransformCoordinate.git
    cd TransformCoordinate
    mkdir build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=pwd/install \
    -DCMAKE_BUILD_TYPE=Release \
    -DQT_DIR=...... \
    -DQt6_DIR=...... \
    -DRabbitCommon_DIR= \
    [其它可选 CMake 配置参数]
    cmake --build . --config Release

  • 打包

    cmake --build . --config Release --target package

  • 运行例子

  • [可选] 把生成库的目录加入到变量 LD_LIBRARY_PATH 中

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib
    
  • 执行 bin 目录下的程序

    cd TransformCoordinate
    cd build
    cd bin
    ./TransformCoordinateApp
    
windows 平台编译说明
  • 使用 cmake-gui.exe 工具编译。打开 cmake-gui.exe 配置
  • 命令行编译
  • 把 cmake 命令所在目录加入到环境变量 PATH 中
  • 从开始菜单打开 “VS2015开发人员命令提示”,进入命令行

    • 编译

      cd TransformCoordinate
      mkdir build
      cd build
      cmake .. -DCMAKE_INSTALL_PREFIX=pwd/install ^
      -DCMAKE_BUILD_TYPE=Release ^
      -DQT_DIR=...... ^
      -DQt6_DIR=...... ^
      -DRabbitCommon_DIR= ^
      [其它可选 CMake 配置参数]
      cmake --build . --config Release

    • 打包

      cmake --build . --config Release --target package

    • 运行例子

    • 执行 bin 目录下的程序
      • TransformCoordinateApp.exe
Android 平台编译说明
  • 安装 ndk 编译工具
  • https://developer.android.com/ndk/downloads 下载 ndk,并安装到:/home/android-ndk
  • 设置环境变量:

    export ANDROID_NDK=/home/android-ndk
    
  • 安装 sdk 工具

  • https://developer.android.google.cn/studio/releases 下载 sdk tools, 并安装到 /home/android-sdk
  • 设置环境变量:

    export ANDROID_SDK=/home/android-sdk
    
  • 编译

  • 主机是 linux

    cd TransformCoordinate
    mkdir build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \
             -DCMAKE_BUILD_TYPE=Release \
             -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
             -DANDROID_ABI="armeabi-v7a with NEON" \
             -DANDROID_PLATFORM=android-18 \
             -DQT_DIR=...... \
             -DQt6_DIR=...... \
             -DRabbitCommon_DIR= \
             [其它可选 CMake 配置参数]
    cmake --build . --config Release --target package
    
  • 主机是 windows

    cd TransformCoordinate
    mkdir build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/android-build ^
             -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ^
             -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake ^
             -DCMAKE_MAKE_PROGRAM=${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe ^
             -DANDROID_ABI=arm64-v8a ^
             -DANDROID_ARM_NEON=ON ^
             -DQT_DIR=...... ^
             -DQt6_DIR=...... ^
             -DRabbitCommon_DIR= ^
             [其它可选 CMake 配置参数]
    cmake --build . --config Release --target package
    
  • CMake for android 参数说明:https://developer.android.google.cn/ndk/guides/cmake

    • ANDROID_ABI: 可取下列值:
      目标 ABI。如果未指定目标 ABI,则 CMake 默认使用 armeabi-v7a。
      有效的目标名称为:
    • armeabi:带软件浮点运算并基于 ARMv5TE 的 CPU。
    • armeabi-v7a:带硬件 FPU 指令 (VFPv3_D16) 并基于 ARMv7 的设备。
    • armeabi-v7a with NEON:与 armeabi-v7a 相同,但启用 NEON 浮点指令。这相当于设置 -DANDROID_ABI=armeabi-v7a 和 -DANDROID_ARM_NEON=ON。
    • arm64-v8a:ARMv8 AArch64 指令集。
    • x86:IA-32 指令集。
    • x86_64 - 用于 x86-64 架构的指令集。
    • ANDROID_NDK \<path> 主机上安装的 NDK 根目录的绝对路径
    • ANDROID_PLATFORM: 如需平台名称和对应 Android 系统映像的完整列表,请参阅 Android NDK 原生 API
    • ANDROID_ARM_MODE
    • ANDROID_ARM_NEON
    • ANDROID_STL: 指定 CMake 应使用的 STL。默认情况下,CMake 使用 c++_static。
    • c++_shared: 使用 libc++ 动态库
    • c++_static: 使用 libc++ 静态库
    • none: 没有 C++ 库支持
    • system: 用系统的 STL
  • 安装 apk 到设备

    adb install android-build-debug.apk

MacOS 平台编译说明
  • 编译

    cd TransformCoordinate
    mkdir build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=pwd/install \
    -DCMAKE_BUILD_TYPE=Release \
    -DQT_DIR=...... \
    -DQt6_DIR=...... \
    -DRabbitCommon_DIR= \
    [其它可选 CMake 配置参数]
    cmake --build . --config Release

  • 打包

    cmake --build . --config Release --target package

使用 C++ 库

  • 坐标转换库:
  • 在程序 CMakeLists.txt 中加入下面行

    find_package(TransformCoordinate)
    target_link_libraries(${PROJECT_NAME} PRIVATE TransformCoordinate)
    
  • 接口详见: TransformCoordinate

  • GPX文件操作库:

  • 编译时,需要设置 CMake 参数: WITH_GPXMODEL=ON
  • 在程序 CMakeLists.txt 中加入下面行

    find_package(GpxModel)
    target_link_libraries(${PROJECT_NAME} PRIVATE GpxModel)
    
  • 接口详见: GpxModel

脚本

  • build_debpackage.sh
  • 此脚本是 linux 下生成 deb 包的。使用前,请确保安装了下面程序

    sudo apt-get install debhelper fakeroot
    
  • 用系统自带的 QT

    sudo apt-get install \
        qt6-tools-dev qt6-tools-dev-tools \
        qt6-base-dev qt6-base-dev-tools qt6-qpa-plugins \
        libqt6svg6-dev qt6-l10n-tools qt6-translations-l10n \
        qt6-scxml-dev qt6-multimedia-dev libqt6serialport6-dev \
        qt6-webengine-dev qt6-webengine-dev-tools
    
  • 详见: ubuntu.yml

  • 注意:

    • 如果使用 RabbitCommon 源码编译,则本库安装的库位于: /opt/TransformCoordinate
    • 如果使用 RabbitCommon 安装包编译,则本库安装于系统目录: /usr
  • deploy.sh: 此脚本用于产生新的发行版本号和标签。仅程序发布者使用。

捐赠:

本软件如果对你有用,或者你喜欢它,请你捐赠,支持作者。谢谢!

捐赠