in python-package/lets_plot/plot/core.py [0:0]
def before_append(self, is_livemap):
from .util import normalize_map_join, is_geo_data_frame, auto_join_geo_names, geo_data_frame_to_crs, \
get_geo_data_frame_meta
from lets_plot.geo_data_internals.utils import is_geocoder
name = self.props()['geom']
map_join = self.props().get('map_join')
map = self.props().get('map')
map_data_meta = None
if map_join is None and map is None:
return
map_join = normalize_map_join(map_join)
if is_geocoder(map):
if is_livemap and get_global_bool(FRAGMENTS_ENABLED) if has_global_value(FRAGMENTS_ENABLED) else False:
map = map.get_geocodes()
map_join = auto_join_geo_names(map_join, map)
map_data_meta = {'georeference': {}}
else:
# Fetch proper GeoDataFrame. Further processing is the same as if map was a GDF.
if name in ['point', 'pie', 'text', 'label', 'livemap']:
map = map.get_centroids()
elif name in ['map', 'polygon']:
map = map.get_boundaries()
elif name in ['rect']:
map = map.get_limits()
else:
raise ValueError("Geocoding doesn't provide geometries for geom_{}".format(name))
if is_geo_data_frame(map):
# map = geo_data_frame_to_crs(map, self.props().get('use_crs'))
use_crs = self.props().get('use_crs')
if use_crs != "provided":
map = geo_data_frame_to_crs(map, use_crs)
map_join = auto_join_geo_names(map_join, map)
map_data_meta = get_geo_data_frame_meta(map)
if map_join is not None:
self.props()['map_join'] = map_join
if map is not None:
self.props()['map'] = map
if map_data_meta is not None:
self.props()['map_data_meta'] = map_data_meta