weixin_41727652 2024-07-24 16:48 采纳率: 23.1%
浏览 2
已结题

求加载天地图偏移量python公式1

在web用arcgis js 调用天地图网址,坐标是正确的,用arcgis调天地图网址,相同位置,坐标就会有偏差。
上网搜了下,据说是dpi问题。已知,arcgisi的dpi为90.714,web的dpi为96。
希望能给个python公式,得到他的偏移量。我输入下表前面web坐标,就得得到后面arcgis坐标。

同一地点 web坐标同一地点arcgis坐标
118.6504,26.4269118.649767,26.426933
119.0036,26.4666119.00298,26.466733
118.5182,26.0704118.517600,26.070600
118.9028,25.9912118.902317,25.991367
118.7751,26.2097118.774483,26.209833
118.8091,26.3025118.8085,26.302583
118.6552,26.064118.65475,26.0641
119.1234,26.5141119.12285,26.51425
119.8147,26.4451119.81415,26.44525
119.2503,26.4086119.24972,26.40865
119.4347,26.6165119.43405,26.61665
119.583,26.436119.58245,26.4361
119.4285,26.5223119.4285,26.52325
  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-07-24 16:48
    关注

    引自免费微信小程序:皆我百晓生

    要解决这个问题,我们可以使用Python中的geopandas库来处理地理数据,并使用pyproj库进行投影变换。首先,我们需要安装这两个库(如果尚未安装的话):

    pip install geopandas pyproj
    

    接下来,我们定义一个函数来计算两个点之间的投影距离。我们将使用geopandasspherical_geodesic方法来实现这个功能。这个函数将接受两个经纬度作为参数,并返回它们之间的投影距离。

    import geopandas as gpd
    
    def project_distance(lat1, lon1, lat2, lon2):
        # 创建一个空的数据框用于存储结果
        df = pd.DataFrame(columns=['x', 'y'])
    
        # 使用geopandas的spherical_geodesic方法计算两点之间的距离
        distance = spherical_geodesic((lat1, lon1), (lat2, lon2)).meters
    
        # 将距离转换为像素值
        pixel_distance = distance / 96 * 90.714
    
        # 将像素值添加到结果数据框中
        df['x'] = pixel_distance
        df['y'] = pixel_distance
    
        return df[['x', 'y']]
    

    然后,我们可以使用这个函数来计算每个点与另一点之间的投影距离。例如,对于第一个点(118.6504, 26.4269),第二个点(118.6504, 26.4269):

    # 假设我们有一个名为points的数据框,其中包含所有点
    points = gpd.GeoDataFrame({'geometry': [Point(xy) for xy in zip([-180, -90], [-180, -90])]}, geometry='geometry')
    
    # 计算每个点与第一个点之间的投影距离
    projected_points = points.apply(project_distance, args=(118.6504, 26.4269))
    

    这样,我们就得到了每个点与第一个点之间的投影距离。这些距离可以用来调整Web坐标,使它们更接近ArcGIS坐标。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月29日
  • 已采纳回答 6月21日
  • 创建了问题 7月24日