{"id":13755567,"url":"https://github.com/danielsnider/MapViz-Tile-Map-Google-Maps-Satellite","last_synced_at":"2025-05-10T01:31:25.349Z","repository":{"id":52891730,"uuid":"81764991","full_name":"danielsnider/MapViz-Tile-Map-Google-Maps-Satellite","owner":"danielsnider","description":"ROS Offline Google Maps for MapViz","archived":false,"fork":false,"pushed_at":"2017-08-15T00:04:26.000Z","size":632,"stargazers_count":102,"open_issues_count":6,"forks_count":30,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-16T09:34:08.794Z","etag":null,"topics":["docker","google-maps","map-tiles","mapproxy","mapviz","ros","wmts"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielsnider.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-12T23:12:27.000Z","updated_at":"2024-11-12T10:25:53.000Z","dependencies_parsed_at":"2022-08-23T15:10:20.808Z","dependency_job_id":null,"html_url":"https://github.com/danielsnider/MapViz-Tile-Map-Google-Maps-Satellite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielsnider%2FMapViz-Tile-Map-Google-Maps-Satellite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielsnider%2FMapViz-Tile-Map-Google-Maps-Satellite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielsnider%2FMapViz-Tile-Map-Google-Maps-Satellite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielsnider%2FMapViz-Tile-Map-Google-Maps-Satellite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielsnider","download_url":"https://codeload.github.com/danielsnider/MapViz-Tile-Map-Google-Maps-Satellite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253349988,"owners_count":21894813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","google-maps","map-tiles","mapproxy","mapviz","ros","wmts"],"created_at":"2024-08-03T10:00:56.896Z","updated_at":"2025-05-10T01:31:24.985Z","avatar_url":"https://github.com/danielsnider.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# ROS Offline Google Maps for MapViz\n### MapViz (Tile_Map plugin) \u003c-- MapProxy (docker container) \u003c-- Google Maps Satellite\nThis will walk you through using [MapProxy in a docker container](https://github.com/danielsnider/docker-mapproxy-googlemaps) to proxy Google Maps satellite view into a [WMTS](https://en.wikipedia.org/wiki/Web_Map_Tile_Service) tile service so that it can be viewed by ROS's [MapViz Tile Map plugin](https://github.com/swri-robotics/mapviz#tile-map). Support for offline maps after loading once, maps stay cached. For outdoor robotics and vehicles.\n\n### `tldr:`\n```\n$ sudo docker run -p 8080:8080 -d -t -v ~/mapproxy:/mapproxy danielsnider/mapproxy\nThen put this URL into the MapViz option \"Custom WMTS Source...\" http://localhost:8080/wmts/gm_layer/gm_grid/{level}/{x}/{y}.png\n```\n\nResult:\n\n\n![screenshot](https://github.com/danielsnider/MapViz-Tile-Map-Google-Maps-Satellite/raw/master/screenshot.png)\n\nMapViz documentation: http://wiki.ros.org/mapviz\n\n## Dependencies\n\n- Docker\n- ROS\n- MapViz and with following plugins: \n\n```\nsudo apt-get install ros-kinetic-mapviz ros-kinetic-mapviz-plugins ros-kinetic-tile-map\n```\n\n## Setup\n\n\n### 1. Create MapProxy server\n\n1.1. Create the MapProxy configuration folder. The cached map tiles will be written to `~/mapproxy/cache_data`.\n\n```\nmkdir ~/mapproxy\n```\n\n1.2 (Optionally) add your own `mapproxy.yaml` configuration file to override the default of proxying Google Maps satellite view over WMTS protocol.\n\n```\ncp mapproxy.yaml ~/mapproxy/mapproxy.yaml\n```\n\n\n1.3. Start the MapProxy server with `~/mapproxy` as a shared volume. \n\n```\nsudo docker run -p 8080:8080 -d -t -v ~/mapproxy:/mapproxy danielsnider/mapproxy\n```\n\n1.4. Confirm MapProxy is working by browsing to [http://127.0.0.1:8080/demo/](http://127.0.0.1:8080/demo/). You will see the MapProxy logo and if you click on \"Image-format png\" you will get an interactive map in your browser. \n\nYou can also see the first map tile by browsing to [http://localhost:8080/wmts/gm_layer/gm_grid/0/0/0.png](http://localhost:8080/wmts/gm_layer/gm_grid/0/0/0.png).\n\n### 2. Setup MapViz\n\n2.1. Open MapViz using ROS\n\n```\nroslaunch mapviz mapviz.launch\n```\n\n2.2. Click the \"Add\" button. \n\n2.3. Choose to add a new `map_tile` display component.\n\n2.4. In the \"Source\" dropdown select \"Custom WMTS Source...\".\n\n2.5. In the \"Base URL:\" field enter the following:\n\n```\nhttp://localhost:8080/wmts/gm_layer/gm_grid/{level}/{x}/{y}.png\n```\n\n2.6. In the \"Max Zoom:\" field enter `19`\n\n2.7. Click \"Save...\"\n\nCongrats! You should now see Google Maps load in MapViz.\n\n\n## FAQ\n### Offline Support?\n\nAny maps that you load will be cached to `~/mapproxy/cache_data` and will be available offline.\n\n### Where are MapProxy's cached files?\n\n```\n~/mapproxy/cache_data\n```\n\n### How to set a default MapViz position?\n\n```\n$ vim ~/.mapviz_config \n# edit the following\noffset_x: 1181506\noffset_y: -992564.2\n```\n\nOR using ROS parameters:\n\n```\n$ roscd mapviz\n$ vim launch/mapviz.launch\n\u003claunch\u003e\n    \u003cnode pkg=\"tf\" type=\"static_transform_publisher\" name=\"swri_transform\" args=\"0 0 0 0 0 0 /map /check 100\"  /\u003e\n    \u003cnode pkg=\"swri_transform_util\" type=\"initialize_origin.py\" name=\"initialize_origin\" \u003e\n        \u003cparam name=\"local_xy_frame\" value=\"/map\"/\u003e\n        \u003cparam name=\"local_xy_origin\" value=\"swri\"/\u003e\n        \u003crosparam param=\"local_xy_origins\"\u003e\n            [{ name: swri,\n             latitude: 37.9879772, \u003c!-- change this --\u003e\n             longitude: 23.9078602, \u003c!-- change this --\u003e\n             altitude: 129.69,\n             heading: 0.0}]\n        \u003c/rosparam\u003e\n    \u003c/node\u003e\n    \u003cnode pkg=\"mapviz\" type=\"mapviz\" name=\"mapviz\"/\u003e\n\u003c/launch\u003e\n```\n\n### How to publish GPS coordinates over ROS?\n\n```\nrostopic pub /novatel/fix sensor_msgs/NavSatFix \"{latitude: 38.406222, longitude: -110.792027}\"\n```\n\n### Note for corporate users\n\nIn 2013 there was [some discussion](http://gis.stackexchange.com/questions/56982/how-to-use-mapproxy-to-serve-wms-from-reprojected-google-maps-tiles) about Google's Terms \u0026 Conditions stating that you are only allowed to access the tiles through Google's API (ie. not MapProxy). \n\n### Project Motivation\n\nBuilt for competing in the [University Rover Competition](http://urc.marssociety.org/) by Ryerson University's http://teamr3.ca/ robot club.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielsnider%2FMapViz-Tile-Map-Google-Maps-Satellite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielsnider%2FMapViz-Tile-Map-Google-Maps-Satellite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielsnider%2FMapViz-Tile-Map-Google-Maps-Satellite/lists"}