小程序可以实现地图点选 获取经纬度位置信息功能吗

Python09

小程序可以实现地图点选 获取经纬度位置信息功能吗,第1张

可以。

获取经纬度位置信息功能的方法:

方法一:使用xGeocoding工具,批量获得Google Earth/Google Map/百度/腾讯/高德等地图的经纬度。工具地址:http://www.gpsspg.com/xgeocoding/。

1.打开百度地图“坐标拾取系统”:输入网址”http://api.map.baidu.com/lbsapi/getpoint/index.html“,进入”坐标拾取系统“

2.进入”坐标拾取系统“后,就可以方便的查询自己的精准地理信息了,我们以”海尔工业园“为例,寻找它的详细坐标。在搜索栏输入“海尔工业园”点击搜索,如图,就会在地图上出现相应的标记,点击你要找的某一个,就能看到相应的坐标。

3.把找到的坐标输入到搜索栏,把后面“坐标反查”给勾上,点击搜索,就会对应的坐标打上标记,同时会有相应地址在最右边

4.把鼠标在地图上滑行,你可以看到,鼠标滑到每一个地方,都会显示对应的坐标。

方法二:使用Python程序,直接嵌入即可。

用程序通过百度地图API批量获取具体地址的经纬度可以选择两种方法:

方法一

建议使用xGeocoding工具,可以批量获得Google Earth/Google Map/百度/腾讯/高德等地图的经纬度。工具地址如下:http://www.gpsspg.com/xgeocoding/

方案二

使用Python程序,直接嵌入即可。代码如下:(需要注意的是百度API获取的是墨卡托坐标,而实际使用的是WGS84坐标。代码已添加转换,只要设定语言一致即可实现。)

#!/usr/bin/python

#coding:utf-8

  

import xlrd

import xlwt

import requests

import urllib

import math

import re

  

pattern_x=re.compile(r'"x":(".+?")')

pattern_y=re.compile(r'"y":(".+?")')

  

def mercator2wgs84(mercator):

    #key1=mercator.keys()[0]

    #key2=mercator.keys()[1]

    point_x=mercator[0]

    point_y=mercator[1]

    x=point_x/20037508.3427892*180

    y=point_y/20037508.3427892*180

    y=180/math.pi*(2*math.atan(math.exp(y*math.pi/180))-math.pi/2)

    return (x,y)

  

def get_mercator(addr):

    quote_addr=urllib.quote(addr.encode('utf8'))

    city=urllib.quote(u'齐齐哈尔市龙'.encode('utf8'))

    province=urllib.quote(u'黑龙江省'.encode('utf8'))

    if quote_addr.startswith(city) or quote_addr.startswith(province):

        pass

    else:

        quote_addr=city+quote_addr

    s=urllib.quote(u'北京市'.encode('utf8'))

    api_addr="http://api.map.baidu.com/?qt=gc&wd=%s&cn=%s&ie=utf-8&oue=1&fromproduct=jsapi&res=api&callback=BMap._rd._cbk62300"%(quote_addr

,s)

    req=requests.get(api_addr)

    content=req.content

    x=re.findall(pattern_x,content)

    y=re.findall(pattern_y,content)

    if x:

        x=x[0]

        y=y[0] 

        x=x[1:-1]

        y=y[1:-1]

        x=float(x)

        y=float(y)

        location=(x,y)

    else:

        location=()

    return location

  

def run():

    data=xlrd.open_workbook('Book2.xls')

    rtable=data.sheets()[0]

    nrows=rtable.nrows

    values=rtable.col_values(0)

      

    workbook=xlwt.Workbook()

    wtable=workbook.add_sheet('data',cell_overwrite_ok=True)

    row=0

    for value in values:

        mercator=get_mercator(value)

        if mercator:

            wgs=mercator2wgs84(mercator)

        else:

            wgs=('NotFound','NotFound')

        print "%s,%s,%s"%(value,wgs[0],wgs[1])

        wtable.write(row,0,value)

        wtable.write(row,1,wgs[0])

        wtable.write(row,2,wgs[1])

        row=row+1

  

    workbook.save('data.xls')

  

if __name__=='__main__':

    run()

经纬度坐标吧,而且你这个经度(-180,180)在前了,一般是先纬度(-90,90)后经度

用GPSSPG查出来结果:

靠近:四川省成都市青白江区钢管厂连接段

参考:四川省成都市青白江区清泉镇北宁村东北方向