Skip to main content

gmymaps

Impetus

Google Maps has a convenient feature for saving points of interest, called My Maps. Such maps are useful for sharing locations with friends. Unfortunately, Google does not provide an API to programatically view or update a MyMaps map1, and it is unlikely to be available any time soon.

This package acts as a simple wrapper around the endpoints used by the official My Maps web app, essentially mimicking the web app's behavior.

Try it out!

  1. Head over to My Maps and create a My Maps map.
  2. On Google Drive, make the map publicly accessible by sharing it as link for anyone to edit.

Fetching map data

import gmymaps

map_id = 'your-map-id-here'
client = gmymaps.get_client()
result = client.get_map_data(map_id)

Editing points and layers

from gmymaps import PointAttrs, PointAttrType

map_id = 'your-map-id-here'
layer_id = client.create_layer(map_id)
client.update_layer(map_id, layer_id, layer_name='My New Layer')

point_id = client.create_point(map_id, layer_id)
attrs = (PointAttrs()
    .add_attr(PointAttrType.NAME, "My New Point")
    .add_attr(PointAttrType.DESCRIPTION, "This is an interesting place to go!")
    .add_attr(PointAttrType.COORD, [1.37, 103.75]))
client.update_point(map_id, layer_id, point_id, attrs)

client.delete_point(map_id, layer_id, point_id)
client.delete_layer(map_id, layer_id)

Cookies

When attempting to access a private map, requests will be redirected to a sign-in page. This redirection occurs even if the map is shared with a service account and accessed using OAuth credentials from that account. To bypass this, you can save a session cookie, similar to yt-dlp's --cookies-from-browser feature. For more details, refer to cookie.py.

Future work

  • Creating convenience wrappers like Map and Layer
  • Changing of point colors
  • Uploading and downloading of KML files

References

1: Link to issue: https://issuetracker.google.com/issues/35820262

Release files for gmymaps 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gmymaps 0.1.1
File Size Uploaded
gmymaps-0.1.1.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gmymaps 0.1.1
File Interpreter ABI Platform
gmymaps-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.2 kB

Release files / gmymaps-0.1.1.tar.gz

Download URL gmymaps-0.1.1.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d306ae5c9ee1bb5e5dc66806a1c1e03846537254af19561363f77e4375af275a
BLAKE2b-256 checksum
How to use checksums
c819d27953910dc5ac06f751cfde7a9c2f48e0d5220aa97b2e058ba1e767ac52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.9 Linux/6.6.28

Release files / gmymaps-0.1.1-py3-none-any.whl

Download URL gmymaps-0.1.1-py3-none-any.whl
Size 5.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48572c14fa6abced4966d94e8f4894067ff51f5aab0b547a2204adf62e35eede
BLAKE2b-256 checksum
How to use checksums
2fa8ab8695db2e24d6cfa2ec534de478a4bcb13d145dabb6861cd8146c75e96a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.9 Linux/6.6.28

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page