专栏名称: 城长数据
ArcGIS for Urabn planning.主要面向城市规划专业,通过全方位的ArcGIS技术与方法讲解,达到高效运用ArcGIS ,以辅助城市规划设计及研究的目的。
目录
相关文章推荐
新浪科技  ·  #OpenAI思维链并非原生#【#GPTo3 ... ·  昨天  
新浪科技  ·  【#华为小艺助手接入DeepSeek#,此前 ... ·  3 天前  
51好读  ›  专栏  ›  城长数据

百度POI代码修正

城长数据  · 公众号  ·  · 2016-12-01 14:04

正文

前段时间公布的百度POI代码划分小网格算法有BUG,现已修正。

具体编写逻辑见:http://www.workloadup.com/baidupoi.html

填入坐标时请保留2位小数。


# -*- coding:utf-8 -*-

import json

import os

import urllib2

import sys

import time

reload(sys)

sys.setdefaultencoding('utf8')


## http://api.map.baidu.com/place/v2/search?query=银行&bounds=39.615,116.404,39.975,116.414&page_size=20&page_num=0&output=json&ak=

##  116.110,39.713   116.699,40.154


class BaiDuPOI(object):

def __init__(self,itemy,loc):

self.itemy = itemy

self.loc = loc


def urls(self):

api_key = baidu_api

urls = []

for pages in range(0,20):

url = 'http://api.map.baidu.com/place/v2/search?query=' + self.itemy + '&bounds=' + self.loc +'&page_size=20&page_num=' + str(pages) + '&output=json&ak=' + api_key

urls.append(url)

return urls


def baidu_search(self):

json_sel = []

for url in self.urls():

json_obj = urllib2.urlopen(url)

data = json.load(json_obj)

for item in data['results']:

jname = item["name"]

jlat = item["location"]["lat"]

jlng = item["location"]["lng"]

js_sel = jname +',' + str(jlat) + ',' + str(jlng)

json_sel.append(js_sel)

return json_sel


class LocaDiv(object):

def __init__(self,loc_all,divd):

self.loc_all = loc_all

self.divd = divd

def lat_all(self):

lat_sw = float(self.loc_all.split(',')[0])

lat_ne = float(self.loc_all.split(',')[2])

lat_list = [str(lat_ne)]

while lat_ne-lat_sw >= 0:

m = lat_ne - self.divd

lat_ne = lat_ne - self.divd

lat_list.append('%.2f' % m)

return sorted(lat_list)

def lng_all(self):

lng_sw = float(self.loc_all.split(',')[1])

lng_ne = float(self.loc_all.split(',')[3])

lng_list = [str(lng_ne)]

while lng_ne-lng_sw >= 0:

m = lng_ne - self.divd

lng_ne = lng_ne - self.divd

lng_list.append('%.2f' % m)

return sorted(lng_list)

def ls_com(self):

l1 = self.lat_all()

l2 = self.lng_all()

ab_list = []

for i in range(0,len(l1)):

a = str(l1[i])

for i2 in range(0,len(l2)):

b = str(l2[i2])

ab = a+','+b

ab_list.append(ab)

return ab_list

def ls_row(self):

l1 = self.lat_all()

l2 = self.lng_all()

ls_com_v = self.ls_com()

ls = []

for n in range(0,len(l1)-1):

for i in range(len(l2)*n,len(l2)*(n+1)-1):







请到「今天看啥」查看全文