API Google Distance Matrix | Use API para coletar dados e realizar análises

Conteúdo

Aviso importante antes de mergulharmos no código; presumimos que o desenvolvimento desses distritos pode ser identificado pelo tamanho da família. Claro, isso não é cem por cento verdadeiro, porém, para este caso, fazemos esta suposição.

Por favor, não fique preso em significados teóricos, o objetivo desta postagem do blog é extrair dados com sucesso e realizar análises de dados neles. Não se trata de tentar algo de verdade.

2. Extrair dados

Vamos extrair dados da plataforma de dados abertos do Município de Istambul (ibb) com API. Você pode encontrar vários conjuntos de dados abertos do Município de Istambul.

Vá para o link de dados abaixo e clique no botão 'API de dados'.

https://data.ibb.gov.tr/en/dataset/ilce-bazli-ortalama-hane-halki-buyuklugu/resource/25077460-ddfb-45b6-b32c-4615f0ad2d57?view_id=c369d9ea-237e-448a-b6ea- cca1e803f98f

1078kh12ovk7q7cawjhzalw-1401920

Quando clicamos no botão API de dados, esta janela abre, vamos copiar o link no retângulo vermelho abaixo e colá-lo em nosso código.

1s1zmq3v-zbtj-iycawmcg-6198214

Depois disso, vamos deletar ‘$ top = 5 &’ para extrair todos os dados, não apenas o primeiro 5. Você pode ver o código abaixo para extrair dados do site e alterá-los para o formato de quadro de dados usando o pandas.

url = ‘https://data.ibb.gov.tr/datastore/odata3.0/25077460-ddfb-45b6-b32c-4615f0ad2d57?$format=json' #URL do tamanho da família de acordo com os distritos
def pulldataToDataframe(url):
 query = urllib.request.urlopen(url) # Conexão API
 data = json.loads(query.read().decodificar()) # Mudar para o tipo json
 data = data.get("valor") # Obtendo apenas o valor dos dados
 return pd.DataFrame(dados) # Mudar para dataframe
df = df.drop(colunas = ”_ id”) # Remoção da coluna id
df = pulldataToDataframe(url)
imprimir(df.columns)

Extraímos os dados e os movemos para o quadro de dados. Vamos ver o 5 Dados principais.

df.head() #Dataframe 1ª coluna: Distritos, 2nd coluna: tamanho da família de acordo com os distritos
1xjqciikxjhnsplbxwyo2xw-4121939

Istambul tem 2 partes; Europeu e asiático. Usaremos Kadikoy para o centro da parte asiática e Besiktas para a parte europeia. Separamos os distritos pela parte asiática (kadikoy_list) e a parte europeia (besiktas_list)

kadikoy_list = ['Kadikoy', 'Águia', 'Sile', 'Uskudar', 'Pendik', 'Umraniye', 'Maltepe', 'Sultanbeyli', ‘Tuzla’, 'Ataşehir', 'Cekmekoy', 'Sancaktepe', 'Beykoz']
besiktas_list = ['Besiktas', 'Bakirkoy', 'Beyoglu', 'Catalca', 'Trabalho', 'Conquistador', 'Gaziosmanpasa', 'Sarıyer', 'Silivri', 'Enevoado', 'Zeytinburnu', 'Buyukcekmece', 'Kagithane', 'Küçükçekmece', 'Bayrampasa', 'Caçadores', 'Bagcilar', ‘Arnuvutköy’, 'Basaksehir', 'Beylikduzu', 'Esenyurt', 'Sultangazi', 'Esenler', 'Gungoren', 'Bahcelievler']
kadikoy_dist = []
besiktas_dist = []

3. API de GOOGLE

Nós vamos, agora vamos ver a parte da API do Google. Existem muitas APIs disponíveis para uso no Google Cloud Platform. Você pode verificá-los aqui: https://cloud.google.com/

1y1juphnzpfttmssmc1j3vw-1692172

Você deve criar sua conta e solicitar uma chave de API. Está bem explicado aqui; https://developers.google.com/maps/documentation/javascript/get-api-key

1qatudoj1zqw5t2rqqowlua-6566093

Eu baixei as APIs abaixo. Porém, como você pode ver, Eu só uso a API de matriz de distância e a API de uso de serviço. Eu recomendo que você também baixe as APIs JavaScript de geocodificação, geolocalização, locais, direções e mapas. Se você quiser trabalhar com dados do GoogleMaps.

1upjxmshtvwvolid3h-10qq-6870988

Agora vamos ver o código de como usamos a API. Nos comentários de código abaixo, Eu acho que esta bem explicado.

pedidos de importação, json
api_key = ’QsatasdjıgwedSDFJW-A1lkjasdbUQ’ #Você precisa colocar sua chave de API aqui
 
# url variável store url 
url = ‘https://maps.googleapis.com/maps/api/distancematrix/json?'
#Para cada distrito na parte asiática, nós encontramos sua distância entre
#(Kadikoy) e anexe nossa lista 'kadikoy_dist'.
para dest em kadikoy_list:   
    source = ‘kadiköy’
    r = solicitações.get(url + ‘Origens =’ + fonte +
    ‘&destinos = ’ + dest +
    ‘&chave = ’ + Chave API)
    kadikoy_dist.append(r.json()[‘Linhas’][0][‘Elementos’][0]['distância']['valor'])
#Para cada distrito na parte europeia, nós encontramos sua distância entre
#(besiktas) e anexe nossa lista 'besiktas_dist'.
para dest em besiktas_list:
    source = ‘besiktas’
    r = solicitações.get(url + ‘Origens =’ + fonte +
    ‘&destinos = ’ + dest +
    ‘&chave = ’ + Chave API)
    besiktas_dist.append(r.json()[‘Linhas’][0][‘Elementos’][0]['distância']['valor'])

Como você pode ver, nós extraímos dados de distritos, tamanho médio da família com API de dados ibb, e geramos uma nova função com a API de matriz de distância da API do Google e a nomeamos como coluna Distâncias.

1vzmr1yhg4xee_ylx2wpqzw-7904585
Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker