googlemaps / google-maps-services-python

Python client library for Google Maps API Web Services
Apache License 2.0
4.48k stars 1.3k forks source link

Static maps style only accepts a dict instead of a list of dict #514

Open raj-abodey opened 6 months ago

raj-abodey commented 6 months ago

I am trying to create a static map with different styles. I would like to turn some poi features off and others on. However, the current approach only accepts a dict and only renders one feature set.

In here (https://github.com/googlemaps/google-maps-services-python/blob/master/googlemaps/maps.py), style is supposed to accept list of dict. However, convert (https://github.com/googlemaps/google-maps-services-python/blob/master/googlemaps/convert.py#L208) only accepts a dict.


Steps to reproduce

Code example

for chunk in gmaps.static_map(
        size=(1024, 1024),
        center=base_address_location,
        style=[
            {
                "feature": "poi.business",
                "visibility": "off",
            },
            {
                "feature": "poi.schools",
                "visibility": "off",
            },
            {
                "feature": "poi.restaurants",
                "visibility": "on",
            },
        ],
        zoom=15,
        format="png",
        markers=marker,
        maptype="roadmap",
    ):
        if chunk:
            f.write(chunk)
    f.close()

Stack trace

    raise TypeError(
TypeError: Expected a dict for components, but got list
wangela commented 6 months ago

If you would like to upvote the priority of this issue, please comment below or react on the original post above with :+1: so we can see what is popular when we triage.

@raj-abodey Thank you for opening this issue. 🙏 Please check out these other resources that might help you get to a resolution in the meantime:

This is an automated message, feel free to ignore.

ofer-pd commented 1 month ago

I have the same issue - I need to pass multiple styles. It's important enough that it means I can't use this library until this problem is fixed - I'll just have to construct the URL manually in the meantime.