Hi,
I'm just trying out PyMove because it seems like it could bring a lot to my current project.
But I can't get any folium functionality to work, though.
Here's an extract of what I'm doing:
absolute_time |
lat |
lng |
id |
2021-09-09 10:32:27.000 |
45.818459 |
3.139887 |
54 |
2021-09-09 10:32:28.000 |
45.818459 |
3.139887 |
54 |
2021-09-09 10:32:29.044 |
45.818459 |
3.139887 |
54 |
2021-09-09 10:32:30.000 |
45.818459 |
3.139887 |
54 |
2021-09-09 10:32:31.000 |
45.818459 |
3.139887 |
54 |
move_df = MoveDataFrame(data=df, latitude='lat', longitude='lng', datetime='absolute_time')
from pymove import folium as f
f.plot_trajectories(move_df)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-159-487305dba7d4> in <module>()
1 from pymove import folium as f
----> 2 f.plot_trajectories(move_df)
2 frames
/usr/local/lib/python3.7/dist-packages/pymove/visualization/folium.py in plot_trajectories(move_data, n_rows, lat_origin, lon_origin, zoom_start, legend, base_map, tile, save_as_html, color, color_by_id, filename)
993
994 _add_trajectories_to_map(
--> 995 mv_df, items, base_map, legend, save_as_html, filename
996 )
997
/usr/local/lib/python3.7/dist-packages/pymove/visualization/folium.py in _add_trajectories_to_map(move_data, items, base_map, legend, save_as_html, filename)
896 mv = move_data[move_data[TRAJ_ID] == _id]
897
--> 898 _add_begin_end_markers_to_map(mv, base_map, color, _id)
899
900 folium.PolyLine(
/usr/local/lib/python3.7/dist-packages/pymove/visualization/folium.py in _add_begin_end_markers_to_map(move_data, base_map, color, _id)
837 popup='Início',
838 icon=plugins.BeautifyIcon(
--> 839 icon='play', icon_shape='marker', background_color=color or 'green'
840 )
841 ).add_to(points)
TypeError: __init__() got an unexpected keyword argument 'color'
Or if I just try to plot the bounding box, I get a different error.
f.plot_bbox(move_df.get_bbox(), color='blue')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-161-03377951b622> in <module>()
----> 1 f.plot_bbox(move_df.get_bbox(), color='blue')
6 frames
/usr/local/lib/python3.7/dist-packages/pymove/visualization/folium.py in plot_bbox(bbox_tuple, base_map, tiles, color, save_as_html, filename)
1688 base_map = folium.Map(tiles=tiles)
1689 base_map.fit_bounds(
-> 1690 [[bbox_tuple[0], bbox_tuple[1]], [bbox_tuple[2], bbox_tuple[3]]]
1691 )
1692 points_ = [
/usr/local/lib/python3.7/dist-packages/folium/folium.py in fit_bounds(self, bounds, padding_top_left, padding_bottom_right, padding, max_zoom)
411 'Choropleth class, which has the same arguments. See the example '
412 'notebook \'GeoJSON_and_choropleth\' for how to do this.',
--> 413 FutureWarning
414 )
415 from folium.features import Choropleth
/usr/local/lib/python3.7/dist-packages/folium/map.py in __init__(self, bounds, padding_top_left, padding_bottom_right, padding, max_zoom)
456 Bounding box specified as two points [southwest, northeast]
457 padding_top_left: (x, y) point, default None
--> 458 Padding in the top left corner. Useful if some elements in
459 the corner, such as controls, might obscure objects you're zooming
460 to.
/usr/lib/python3.7/json/__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
229 cls is None and indent is None and separators is None and
230 default is None and not sort_keys and not kw):
--> 231 return _default_encoder.encode(obj)
232 if cls is None:
233 cls = JSONEncoder
/usr/lib/python3.7/json/encoder.py in encode(self, o)
197 # exceptions aren't as detailed. The list call should be roughly
198 # equivalent to the PySequence_Fast that ''.join() would do.
--> 199 chunks = self.iterencode(o, _one_shot=True)
200 if not isinstance(chunks, (list, tuple)):
201 chunks = list(chunks)
/usr/lib/python3.7/json/encoder.py in iterencode(self, o, _one_shot)
255 self.key_separator, self.item_separator, self.sort_keys,
256 self.skipkeys, _one_shot)
--> 257 return _iterencode(o, 0)
258
259 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
/usr/lib/python3.7/json/encoder.py in default(self, o)
177
178 """
--> 179 raise TypeError(f'Object of type {o.__class__.__name__} '
180 f'is not JSON serializable')
181
TypeError: Object of type float16 is not JSON serializable
I'm using python version 3.7, PyMove
version 3.0.0, and folium
version 0.8.3