{
  "schemaVersion": "1.0",
  "item": {
    "slug": "google-maps",
    "name": "Google Maps",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Shaharsha/google-maps",
    "canonicalUrl": "https://clawhub.ai/Shaharsha/google-maps",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/google-maps",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=google-maps",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "lib/map_helper.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "google-maps",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-03T21:52:00.106Z",
      "expiresAt": "2026-05-10T21:52:00.106Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=google-maps",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=google-maps",
        "contentDisposition": "attachment; filename=\"google-maps-3.2.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "google-maps"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/google-maps"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/google-maps",
    "agentPageUrl": "https://openagent3.xyz/skills/google-maps/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-maps/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-maps/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Google Maps 🗺️",
        "body": "Google Maps integration powered by the Routes API."
      },
      {
        "title": "Requirements",
        "body": "GOOGLE_API_KEY environment variable\nEnable in Google Cloud Console: Routes API, Places API, Geocoding API"
      },
      {
        "title": "Configuration",
        "body": "Env VariableDefaultDescriptionGOOGLE_API_KEY-Required. Your Google Maps API keyGOOGLE_MAPS_API_KEY-Alternative to GOOGLE_API_KEY (fallback)GOOGLE_MAPS_LANGenResponse language (en, he, ja, etc.)\n\nSet in OpenClaw config:\n\n{\n  \"env\": {\n    \"GOOGLE_API_KEY\": \"AIza...\",\n    \"GOOGLE_MAPS_LANG\": \"en\"\n  }\n}"
      },
      {
        "title": "Script Location",
        "body": "python3 skills/google-maps/lib/map_helper.py <action> [options]"
      },
      {
        "title": "distance - Calculate travel time",
        "body": "python3 lib/map_helper.py distance \"origin\" \"destination\" [options]\n\nOptions:\n\nOptionValuesDescription--modedriving, walking, bicycling, transitTravel mode (default: driving)--departnow, +30m, +1h, 14:00, 2026-02-07 08:00Departure time--arrive14:00Arrival time (transit only)--trafficbest_guess, pessimistic, optimisticTraffic model--avoidtolls, highways, ferriesComma-separated\n\nExamples:\n\npython3 lib/map_helper.py distance \"New York\" \"Boston\"\npython3 lib/map_helper.py distance \"Los Angeles\" \"San Francisco\" --depart=\"+1h\"\npython3 lib/map_helper.py distance \"Chicago\" \"Detroit\" --depart=\"08:00\" --traffic=pessimistic\npython3 lib/map_helper.py distance \"London\" \"Manchester\" --mode=transit --arrive=\"09:00\"\npython3 lib/map_helper.py distance \"Paris\" \"Lyon\" --avoid=tolls,highways\n\nResponse:\n\n{\n  \"distance\": \"215.2 mi\",\n  \"distance_meters\": 346300,\n  \"duration\": \"3 hrs 45 mins\",\n  \"duration_seconds\": 13500,\n  \"static_duration\": \"3 hrs 30 mins\",\n  \"duration_in_traffic\": \"3 hrs 45 mins\"\n}"
      },
      {
        "title": "directions - Turn-by-turn route",
        "body": "python3 lib/map_helper.py directions \"origin\" \"destination\" [options]\n\nAdditional options (beyond distance):\n\nOptionDescription--alternativesReturn multiple routes--waypointsIntermediate stops (pipe-separated)--optimizeOptimize waypoint order (TSP)\n\nExamples:\n\npython3 lib/map_helper.py directions \"New York\" \"Washington DC\"\npython3 lib/map_helper.py directions \"San Francisco\" \"Los Angeles\" --alternatives\npython3 lib/map_helper.py directions \"Miami\" \"Orlando\" --waypoints=\"Fort Lauderdale|West Palm Beach\" --optimize\n\nResponse includes: summary, labels, duration, static_duration, warnings, steps[], optimized_waypoint_order"
      },
      {
        "title": "matrix - Distance matrix",
        "body": "Calculate distances between multiple origins and destinations:\n\npython3 lib/map_helper.py matrix \"orig1|orig2\" \"dest1|dest2\"\n\nExample:\n\npython3 lib/map_helper.py matrix \"New York|Boston\" \"Philadelphia|Washington DC\"\n\nResponse:\n\n{\n  \"origins\": [\"New York\", \"Boston\"],\n  \"destinations\": [\"Philadelphia\", \"Washington DC\"],\n  \"results\": [\n    {\"origin_index\": 0, \"destination_index\": 0, \"distance\": \"97 mi\", \"duration\": \"1 hr 45 mins\"},\n    {\"origin_index\": 0, \"destination_index\": 1, \"distance\": \"225 mi\", \"duration\": \"4 hrs 10 mins\"}\n  ]\n}"
      },
      {
        "title": "geocode - Address to coordinates",
        "body": "python3 lib/map_helper.py geocode \"1600 Amphitheatre Parkway, Mountain View, CA\"\npython3 lib/map_helper.py geocode \"10 Downing Street, London\""
      },
      {
        "title": "reverse - Coordinates to address",
        "body": "python3 lib/map_helper.py reverse 40.7128 -74.0060  # New York City\npython3 lib/map_helper.py reverse 51.5074 -0.1278  # London"
      },
      {
        "title": "search - Find places",
        "body": "python3 lib/map_helper.py search \"coffee near Times Square\"\npython3 lib/map_helper.py search \"pharmacy in San Francisco\" --open"
      },
      {
        "title": "details - Place information",
        "body": "python3 lib/map_helper.py details \"<place_id>\""
      },
      {
        "title": "Traffic Models",
        "body": "ModelUse Casebest_guessDefault balanced estimatepessimisticImportant meetings (worst-case)optimisticBest-case scenario"
      },
      {
        "title": "Regional Notes",
        "body": "Some features may not be available in all countries:\n\nFeatureAvailability--fuel-efficientUS, EU, select countries--shorterLimited availability--mode=two_wheelerAsia, select countries\n\nCheck Google Maps coverage for details."
      },
      {
        "title": "Multilingual Support",
        "body": "Works with addresses in any language:\n\n# Hebrew\npython3 lib/map_helper.py distance \"תל אביב\" \"ירושלים\"\npython3 lib/map_helper.py geocode \"דיזנגוף 50, תל אביב\"\n\n# Japanese\npython3 lib/map_helper.py distance \"東京\" \"大阪\"\n\n# Arabic\npython3 lib/map_helper.py distance \"دبي\" \"أبو ظبي\"\n\nLanguage configuration:\n\nSet default via env: GOOGLE_MAPS_LANG=he (persists)\nOverride per-request: --lang=ja\n\n# Set Hebrew as default in OpenClaw config\nGOOGLE_MAPS_LANG=he\n\n# Override for specific request\npython3 lib/map_helper.py distance \"Tokyo\" \"Osaka\" --lang=ja"
      },
      {
        "title": "Help",
        "body": "python3 lib/map_helper.py help"
      }
    ],
    "body": "Google Maps 🗺️\n\nGoogle Maps integration powered by the Routes API.\n\nRequirements\nGOOGLE_API_KEY environment variable\nEnable in Google Cloud Console: Routes API, Places API, Geocoding API\nConfiguration\nEnv Variable\tDefault\tDescription\nGOOGLE_API_KEY\t-\tRequired. Your Google Maps API key\nGOOGLE_MAPS_API_KEY\t-\tAlternative to GOOGLE_API_KEY (fallback)\nGOOGLE_MAPS_LANG\ten\tResponse language (en, he, ja, etc.)\n\nSet in OpenClaw config:\n\n{\n  \"env\": {\n    \"GOOGLE_API_KEY\": \"AIza...\",\n    \"GOOGLE_MAPS_LANG\": \"en\"\n  }\n}\n\nScript Location\npython3 skills/google-maps/lib/map_helper.py <action> [options]\n\nActions\ndistance - Calculate travel time\npython3 lib/map_helper.py distance \"origin\" \"destination\" [options]\n\n\nOptions:\n\nOption\tValues\tDescription\n--mode\tdriving, walking, bicycling, transit\tTravel mode (default: driving)\n--depart\tnow, +30m, +1h, 14:00, 2026-02-07 08:00\tDeparture time\n--arrive\t14:00\tArrival time (transit only)\n--traffic\tbest_guess, pessimistic, optimistic\tTraffic model\n--avoid\ttolls, highways, ferries\tComma-separated\n\nExamples:\n\npython3 lib/map_helper.py distance \"New York\" \"Boston\"\npython3 lib/map_helper.py distance \"Los Angeles\" \"San Francisco\" --depart=\"+1h\"\npython3 lib/map_helper.py distance \"Chicago\" \"Detroit\" --depart=\"08:00\" --traffic=pessimistic\npython3 lib/map_helper.py distance \"London\" \"Manchester\" --mode=transit --arrive=\"09:00\"\npython3 lib/map_helper.py distance \"Paris\" \"Lyon\" --avoid=tolls,highways\n\n\nResponse:\n\n{\n  \"distance\": \"215.2 mi\",\n  \"distance_meters\": 346300,\n  \"duration\": \"3 hrs 45 mins\",\n  \"duration_seconds\": 13500,\n  \"static_duration\": \"3 hrs 30 mins\",\n  \"duration_in_traffic\": \"3 hrs 45 mins\"\n}\n\ndirections - Turn-by-turn route\npython3 lib/map_helper.py directions \"origin\" \"destination\" [options]\n\n\nAdditional options (beyond distance):\n\nOption\tDescription\n--alternatives\tReturn multiple routes\n--waypoints\tIntermediate stops (pipe-separated)\n--optimize\tOptimize waypoint order (TSP)\n\nExamples:\n\npython3 lib/map_helper.py directions \"New York\" \"Washington DC\"\npython3 lib/map_helper.py directions \"San Francisco\" \"Los Angeles\" --alternatives\npython3 lib/map_helper.py directions \"Miami\" \"Orlando\" --waypoints=\"Fort Lauderdale|West Palm Beach\" --optimize\n\n\nResponse includes: summary, labels, duration, static_duration, warnings, steps[], optimized_waypoint_order\n\nmatrix - Distance matrix\n\nCalculate distances between multiple origins and destinations:\n\npython3 lib/map_helper.py matrix \"orig1|orig2\" \"dest1|dest2\"\n\n\nExample:\n\npython3 lib/map_helper.py matrix \"New York|Boston\" \"Philadelphia|Washington DC\"\n\n\nResponse:\n\n{\n  \"origins\": [\"New York\", \"Boston\"],\n  \"destinations\": [\"Philadelphia\", \"Washington DC\"],\n  \"results\": [\n    {\"origin_index\": 0, \"destination_index\": 0, \"distance\": \"97 mi\", \"duration\": \"1 hr 45 mins\"},\n    {\"origin_index\": 0, \"destination_index\": 1, \"distance\": \"225 mi\", \"duration\": \"4 hrs 10 mins\"}\n  ]\n}\n\ngeocode - Address to coordinates\npython3 lib/map_helper.py geocode \"1600 Amphitheatre Parkway, Mountain View, CA\"\npython3 lib/map_helper.py geocode \"10 Downing Street, London\"\n\nreverse - Coordinates to address\npython3 lib/map_helper.py reverse 40.7128 -74.0060  # New York City\npython3 lib/map_helper.py reverse 51.5074 -0.1278  # London\n\nsearch - Find places\npython3 lib/map_helper.py search \"coffee near Times Square\"\npython3 lib/map_helper.py search \"pharmacy in San Francisco\" --open\n\ndetails - Place information\npython3 lib/map_helper.py details \"<place_id>\"\n\nTraffic Models\nModel\tUse Case\nbest_guess\tDefault balanced estimate\npessimistic\tImportant meetings (worst-case)\noptimistic\tBest-case scenario\nRegional Notes\n\nSome features may not be available in all countries:\n\nFeature\tAvailability\n--fuel-efficient\tUS, EU, select countries\n--shorter\tLimited availability\n--mode=two_wheeler\tAsia, select countries\n\nCheck Google Maps coverage for details.\n\nMultilingual Support\n\nWorks with addresses in any language:\n\n# Hebrew\npython3 lib/map_helper.py distance \"תל אביב\" \"ירושלים\"\npython3 lib/map_helper.py geocode \"דיזנגוף 50, תל אביב\"\n\n# Japanese\npython3 lib/map_helper.py distance \"東京\" \"大阪\"\n\n# Arabic\npython3 lib/map_helper.py distance \"دبي\" \"أبو ظبي\"\n\n\nLanguage configuration:\n\nSet default via env: GOOGLE_MAPS_LANG=he (persists)\nOverride per-request: --lang=ja\n# Set Hebrew as default in OpenClaw config\nGOOGLE_MAPS_LANG=he\n\n# Override for specific request\npython3 lib/map_helper.py distance \"Tokyo\" \"Osaka\" --lang=ja\n\nHelp\npython3 lib/map_helper.py help"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Shaharsha/google-maps",
    "publisherUrl": "https://clawhub.ai/Shaharsha/google-maps",
    "owner": "Shaharsha",
    "version": "3.1.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/google-maps",
    "downloadUrl": "https://openagent3.xyz/downloads/google-maps",
    "agentUrl": "https://openagent3.xyz/skills/google-maps/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-maps/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-maps/agent.md"
  }
}