91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .py
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-10
  • 語言: Python
  • 標簽:

資源簡介

代碼實現了在python下利用百度api獲取地鐵站點及地鐵精細路線(軌跡)的墨卡托坐標數據并轉化為WGS-84坐標系下的經緯度,并使用 plotly+mapbox 繪制地鐵路線圖

資源截圖

代碼片段和文件信息

import?numpy?as?np
import?requests
import?math
import?time
import?plotly.offline?as?py
import?plotly.graph_objs?as?go
from?plotly.offline?import?init_notebook_mode

init_notebook_mode(connected=True)


PI?=?math.pi

def?_transformlat(coordinates):
????lng?=?coordinates[?:??0]?-?105
????lat?=?coordinates[?:??1]?-?35
????ret?=?-100?+?2?*?lng?+?3?*?lat?+?0.2?*?lat?*?lat?+?\
??????????0.1?*?lng?*?lat?+?0.2?*?np.sqrt(np.fabs(lng))
????ret?+=?(20?*?np.sin(6?*?lng?*?PI)?+?20?*
????????????np.sin(2?*?lng?*?PI))?*?2?/?3
????ret?+=?(20?*?np.sin(lat?*?PI)?+?40?*
????????????np.sin(lat?/?3?*?PI))?*?2?/?3
????ret?+=?(160?*?np.sin(lat?/?12?*?PI)?+?320?*
????????????np.sin(lat?*?PI?/?30.0))?*?2?/?3
????return?ret


def?_transformlng(coordinates):
????lng?=?coordinates[?:??0]?-?105
????lat?=?coordinates[?:??1]?-?35
????ret?=?300?+?lng?+?2?*?lat?+?0.1?*?lng?*?lng?+?\
??????????0.1?*?lng?*?lat?+?0.1?*?np.sqrt(np.fabs(lng))
????ret?+=?(20?*?np.sin(6?*?lng?*?PI)?+?20?*
????????????np.sin(2?*?lng?*?PI))?*?2?/?3
????ret?+=?(20?*?np.sin(lng?*?PI)?+?40?*
????????????np.sin(lng?/?3?*?PI))?*?2?/?3
????ret?+=?(150?*?np.sin(lng?/?12?*?PI)?+?300?*
????????????np.sin(lng?/?30?*?PI))?*?2?/?3
????return?ret

def?gcj02_to_wgs84(coordinates):
????“““
????GCJ-02轉WGS-84
????:param?coordinates:?GCJ-02坐標系的經度和緯度的numpy數組
????:returns:?WGS-84坐標系的經度和緯度的numpy數組
????“““
????ee?=?0.006693421622965943??#?偏心率平方
????a?=?6378245??#?長半軸
????lng?=?coordinates[?:??0]
????lat?=?coordinates[?:??1]
????is_in_china?=?(lng?>?73.66)?&?(lng??3.86)?&?(lat?????_transform?=?coordinates[is_in_china]??#只對不在國內的坐標做偏移
????
????dlat?=?_transformlat(_transform)
????dlng?=?_transformlng(_transform)
????radlat?=?_transform[?:??1]?/?180?*?PI
????magic?=?np.sin(radlat)
????magic?=?1?-?ee?*?magic?*?magic
????sqrtmagic?=?np.sqrt(magic)
????dlat?=?(dlat?*?180.0)?/?((a?*?(1?-?ee))?/?(magic?*?sqrtmagic)?*?PI)
????dlng?=?(dlng?*?180.0)?/?(a?/?sqrtmagic?*?np.cos(radlat)?*?PI)
????mglat?=?_transform[?:??1]?+?dlat
????mglng?=?_transform[?:??0]?+?dlng
????coordinates[is_in_china]?=?np.array([_transform[?:??0]?*?2?-?mglng?_transform[?:??1]?*?2?-?mglat]).T
????return?coordinates

def?bd09_to_gcj02(coordinates):
????“““
????BD-09轉GCJ-02
????:param?coordinates:?BD-09坐標系的經度和緯度的numpy數組
????:returns:?GCJ-02坐標系的經度和緯度的numpy數組
????“““
????x_pi?=?PI?*?3000?/?180
????x?=?coordinates[?:??0]?-?0.0065
????y?=?coordinates[?:??1]?-?0.006
????z?=?np.sqrt(x?*?x?+?y?*?y)?-?0.00002?*?np.sin(y?*?x_pi)
????theta?=?np.arctan2(y?x)?-?0.000003?*?np.cos(x?*?x_pi)
????lng?=?z?*?np.cos(theta)
????lat?=?z?*?np.sin(theta)
????coordinates?=?np.array([lng?lat]).T
????return?coordinates

def?bd09_to_wgs84(coordinates):
????“““
????BD-09轉WGS-84
????:param?coordinates:?BD-09坐標系的經度和緯度的numpy數組
????:returns:?WGS-84坐標系的經度和緯度的numpy數組
????“““
????return?gcj02_to_wgs84(bd09_to_gcj02(coordinates))

def?mercator_to_bd09(mercator):
????“““

評論

共有 條評論

相關資源