[WebGIS] arcgis js地图坐标偏移问题

文章目录


JS坐标纠偏算法

问题

环境:ArcGIS api for Javascript
底图为高德地图  ArcGIS api for Javascript加载高德地图
数据情况:HotSpots 点要素类
    数据投影:WGS_1984_Web_Mercator_Auxiliray_Sphere
点要素类坐标系
偏移情况:
偏移情况

分析

ArcGIS加载第三方底图时:
若第三方底图为经纬度坐标系,则底图的wkid显示为4326
若第三方底图为投影坐标系,则底图的wkid显示为10200
但是,注意,这里我们没有给第三方底图进行纠偏,所以图上的点其实还是第三方底图的坐标系,并不是wkid所显示的。

学习:如何解决坐标转换,坐标偏移?

高德地图的坐标系为GCJ-02(国内加密后的坐标系)
使用ArcGIS JS导入高德地图时,底图实际还是GCJ-02的坐标系,但显示为10200
而上述HotSpots点要素数据加载到地图上时存在偏移,是因为它是WGS_1984_web_mercator的坐标系
两者必定存在偏移

解决

整个地图的坐标系是 GCJ-02转换为WGS-1984-Web-mercator
数据是GPS转为WGS-1984-Web-mercator

  1. 换底图
    考虑到天地图是以CGCS-2000坐标系,与GPS坐标系一样,同是地心坐标系,所以相差不大
    数据偏移量会很小
    加载天地图
    结果:基本无偏移
    结果

  2. 数据转为底图标准
    数据坐标(WGS-1984-Web-mercator)–>GPS经纬度坐标–>GCJ-02经纬度坐标–>底图的投影坐标–>再显示,解决偏移
    代码:

     /**
     * @function 坐标转换
     * @param x,y数据的墨卡托
     * @return 地图的墨卡托
     * @description param(数据墨卡托)--> GPS --> GCJ-01 --> 墨卡托
     */
    function mercatorToGaodemap(x,y) {
        var ret;
        require(["esri/geometry/webMercatorUtils",
            "esri/geometry/Point",
            "esri/SpatialReference"], function(webMercatorUtils,Point,SpatialReference) {
            //墨卡托转GPS
            var gps = webMercatorUtils.webMercatorToGeographic(new Point(x, y, new SpatialReference({ wkid: 3857 })));
            console.log(gps);
            //GPS-->GCJ-01
            var url = "http://api.zdoz.net/transgps.aspx?lat="+gps.x+"&lng="+gps.y;
            console.log(url);
            $.ajax({
                url : url,
                type : "get",
                async : false,
                dataType: 'JSONP',
                success : function(data){
                    var GCJ_X,GCJ_Y;
                    console.log(data);
                    var data = eval(data);
                    GCJ_X = data["Lng"];
                    GCJ_Y = data["Lat"];
                    //GCJ-01-->墨卡托
                    var pt = new Point(GCJ_X, GCJ_Y, new SpatialReference({ wkid: 4326 }));
                    console.log(pt);
                    ret = webMercatorUtils.geographicToWebMercator(pt);
                }
            });
        });
        return ret;
    }
    
### 使用 AutoGPTQ 库量化 Transformer 模型 为了使用 `AutoGPTQ` 对 Transformer 模型进行量化,可以遵循如下方法: 安装所需的依赖包是必要的操作。通过 pip 安装 `auto-gptq` 可以获取最新版本的库。 ```bash pip install auto-gptq ``` 加载预训练模型并应用 GPTQ (General-Purpose Tensor Quantization) 技术来减少模型大小和加速推理过程是一个常见的流程。下面展示了如何利用 `AutoGPTQForCausalLM` 类来进行这一工作[^1]。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer from auto_gptq import AutoGPTQForCausalLM model_name_or_path = "facebook/opt-350m" quantized_model_dir = "./quantized_model" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) # 加载已经量化的模型或者创建一个新的量化器对象用于量化未压缩过的模型 gptq_model = AutoGPTQForCausalLM.from_pretrained(quantized_model_dir, model=model, tokenizer=tokenizer) ``` 对于那些希望进一步优化其部署环境中的模型性能的人来说,`AutoGPTQ` 提供了多种配置选项来自定义量化参数,比如位宽(bit-width),这有助于平衡精度损失与运行效率之间的关系。 #### 注意事项 当处理特定硬件平台上的部署时,建议查阅官方文档以获得最佳实践指导和支持信息。此外,在实际应用场景之前应该充分测试经过量化的模型以确保满足预期的质量标准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

geodoer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值