Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tableau api 表地址地理编码_Tableau Api - Fatal编程技术网

Tableau api 表地址地理编码

Tableau api 表地址地理编码,tableau-api,Tableau Api,我想建立一个仪表板,在那里我可以搜索美国的任何地址,通过Tableau对其进行地理编码,然后根据距离该地址1-5英里的半径过滤数据集。Tableau是否有能力做到这一点,或者我是否需要第三方应用程序来容纳地址搜索功能/地理编码。不幸的是,Tableau的内置逻辑只支持识别城市和邮政编码等内容。如果您想要更精细的位置视觉效果(街道地址等),则在构建数据源之前需要自己进行地理编码 在过去,我用一些简单的python代码和ArcGIS完成了这项工作: import pandas as pd impo

我想建立一个仪表板,在那里我可以搜索美国的任何地址,通过Tableau对其进行地理编码,然后根据距离该地址1-5英里的半径过滤数据集。Tableau是否有能力做到这一点,或者我是否需要第三方应用程序来容纳地址搜索功能/地理编码。

不幸的是,Tableau的内置逻辑只支持识别城市和邮政编码等内容。如果您想要更精细的位置视觉效果(街道地址等),则在构建数据源之前需要自己进行地理编码

在过去,我用一些简单的python代码和ArcGIS完成了这项工作:

import pandas as pd
import numpy as np
import geopy
from geopy.geocoders import ArcGIS    

#csv with street addresses, cities, states, and zip
file_loc = "C:/Documents/data.csv"

df = pd.read_csv(file_loc, na_values=None,
                 dtype = {'STREET': object, 'CITY': object, 'STATE': object, 'ZIP': object})

df = df.fillna('')

street = df['STREET'].map(str)    
city = df['CITY'].map(str)    
state = df['STATE'].map(str)    
zip = df['ZIP'].map(str)

addr = street + ' ' + city + ' ' + state + ' ' + zip

df['ADDRESS'] = addr    
addresses = df['ADDRESS'].unique()

geolocator = ArcGIS()

addr_list = []

for a in addresses:
    temp_dict = {}
    loc = geolocator.geocode(a,timeout = 5)
    if loc:
        temp_dict['LAT'] = loc.latitude
        temp_dict['LONG'] = loc.longitude
        temp_dict['ADDR'] = loc.address
        temp_dict['ADDRESS'] = a
    else:
        temp_dict['LAT'] = None
        temp_dict['LONG'] = None
        temp_dict['ADDR'] = None
        temp_dict['ADDRESS'] = a
    addr_list.append(temp_dict)

addr_df = pd.DataFrame(addr_list)

df = df.merge(addr_df, on='ADDRESS', how='left')

writer = pd.ExcelWriter('outdate.xlsx')
df.to_excel(writer,'Sheet1',index=False)
writer.save()

您是否尝试过tableau自定义地理编码,以及您正在使用的tableau版本?