{"id":2310,"date":"2026-10-20T08:30:41","date_gmt":"2026-10-20T07:30:41","guid":{"rendered":"https:\/\/wpgeodirectory.com\/documentation\/article\/geodirectory-maps-faq\/"},"modified":"2026-10-20T09:02:16","modified_gmt":"2026-10-20T08:02:16","slug":"geodirectory-maps-faq","status":"publish","type":"gd_place","link":"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/geodirectory-maps-faq\/","title":{"rendered":"GeoDirectory maps FAQ"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Answers to common GeoDirectory questions about maps. Click a question to open the answer.<\/p>\n\n\n\n<div class=\"wp-block-blockstrap-blockstrap-widget-accordion accordion mb-3\">\n<div class=\"accordion-item\" id=\"heading-waze-directions-button\"><h2 class=\"accordion-header\"><button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-waze-directions-button\" aria-expanded=\"true\" aria-controls=\"collapse-waze-directions-button\">How do I add a Waze or &quot;get directions&quot; button to listings?<\/button><\/h2><div class=\"accordion-collapse collapse show\" id=\"collapse-waze-directions-button\" aria-labelledby=\"heading-waze-directions-button\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">For Google Maps directions, add the GD &gt; Directions block or <code>&#091;&lt;span&gt;&lt;\/span&gt;gd_post_directions&#093;<\/code> shortcode to your details page. See <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/core-widgets\/gd-directions\/\">GD &gt; Directions<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Waze, use a GD &gt; Post Badge that builds a Waze link from the listing&#8217;s coordinates:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-php\">&#091;&lt;span&gt;&lt;\/span&gt;gd_post_badge key=&quot;latitude&quot; condition=&quot;is_not_empty&quot; badge=&quot;Open in Waze&quot; link=&quot;https:\/\/waze.com\/ul?ll=%%latitude%%,%%longitude%%&amp;navigate=yes&quot; new_window=&quot;1&quot;&#093;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The badge only shows when the listing has a location, and <code>%%latitude%%<\/code> and <code>%%longitude%%<\/code> are filled in from the listing. The same idea works for other apps that accept coordinates in a link.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-switch-google-to-osm\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-switch-google-to-osm\" aria-expanded=\"false\" aria-controls=\"collapse-switch-google-to-osm\">Can I switch from Google Maps to OpenStreetMap later?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-switch-google-to-osm\" aria-labelledby=\"heading-switch-google-to-osm\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Yes. Change Maps API in GeoDirectory > Settings > General (it is an advanced setting, so show advanced settings first). Choose Google Maps API, OpenStreetMap API or Automatic. If no Google key is saved, GeoDirectory uses OpenStreetMap anyway.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your listings keep the latitude and longitude they were saved with, so existing markers stay where they are. What changes is how new addresses are looked up. Google and OpenStreetMap sometimes name the same city or region differently, so after a switch you may get near duplicates of existing locations. With Location Manager you can merge those cities into one. If you have full street addresses, you can also export your listings and geocode them again in bulk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/differences-between-the-google-maps-and-openstreetmap-apis\/\">Differences between the Google Maps and OpenStreetMap APIs<\/a> explains the trade-offs, and you can also <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/code-snippets\/use-google-for-geocoding-and-openstreetmaps-for-map-displays\/\">use Google for geocoding and OpenStreetMap for the map display<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-geocode-request-denied\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-geocode-request-denied\" aria-expanded=\"false\" aria-controls=\"collapse-geocode-request-denied\">How do I fix &quot;Geocode was not successful for the following reason: REQUEST_DENIED&quot;?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-geocode-request-denied\" aria-labelledby=\"heading-geocode-request-denied\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">GeoDirectory shows this message when Google refuses to geocode an address for your API key. It usually appears when you save a listing or move the map marker. Google denies the request for one of these reasons:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The Geocoding API isn&#8217;t enabled for the key&#8217;s project in the Google Cloud Console.<\/li>\n\n\n\n<li>Billing isn&#8217;t set up on the Google Cloud project.<\/li>\n\n\n\n<li>The key&#8217;s restrictions don&#8217;t include your site, for example after a move from http to https or to a new domain.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The easiest fix is to create a new key with the Generate Key button at GeoDirectory &gt; Settings &gt; General, under Map Settings. Paste the key into Google Maps API KEY, click Verify and save. If your maps key is restricted by HTTP referrers, put a separate key in the Google Geocoding API Key setting (shown with the advanced settings). <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/installation\/get-a-google-api-key\/\">Get a Google API key<\/a> walks through each step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Clear your page cache afterwards so pages stop loading the old key.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-geocode-request-denied-2\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-geocode-request-denied-2\" aria-expanded=\"false\" aria-controls=\"collapse-geocode-request-denied-2\">How do I fix &quot;Geocode was not successful for the following reason: REQUEST_DENIED&quot;?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-geocode-request-denied-2\" aria-labelledby=\"heading-geocode-request-denied-2\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Google returns REQUEST_DENIED when your API key is not allowed to use the Geocoding service. GeoDirectory shows the message when it tries to find an address on the map, for example when you set a location or add a listing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check these in the Google Cloud Console:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The Geocoding API is enabled for the project, as well as the Maps JavaScript API and Places API.<\/li>\n\n\n\n<li>Billing is enabled on the project.<\/li>\n\n\n\n<li>The key restrictions allow your site. If the key is restricted by HTTP referrer, add your domain with and without www.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Then make sure the key is saved in GeoDirectory > Settings > General. Our guide <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/installation\/get-a-google-api-key\/\">Get a Google API key<\/a> walks through creating a correctly configured key.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-google-maps-cant-load\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-google-maps-cant-load\" aria-expanded=\"false\" aria-controls=\"collapse-google-maps-cant-load\">Why does my map say &quot;This page can&#x27;t load Google Maps correctly&quot;?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-google-maps-cant-load\" aria-labelledby=\"heading-google-maps-cant-load\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Google shows that message, and errors such as &#8220;Request denied&#8221; or &#8220;You must enable Billing on the Google Cloud Project&#8221;, when it refuses your API key. GeoDirectory sends the key you saved, so the fix is in your Google Cloud project:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Link a billing account to the project that owns the key. Google needs billing on the project even when your use stays inside the free monthly credit.<\/li>\n\n\n\n<li>Make sure the Maps JavaScript API, Geocoding API and Places API are enabled for that project. The button next to the Google Maps API KEY field in GeoDirectory &gt; Settings &gt; General creates a key with the APIs GeoDirectory uses.<\/li>\n\n\n\n<li>If you restricted the key by website, add your domain to the allowed referrers.<\/li>\n\n\n\n<li>Check the Quotas page in Google Cloud for any daily limit you set that is now used up.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Your browser console names the exact problem, for example <code>BillingNotEnabledMapError<\/code> or <code>RefererNotAllowedMapError<\/code>. If you prefer not to use Google, set Maps API to OpenStreetMap under Map Settings on the same page (click Show Advanced first). See <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/installation\/get-a-google-api-key\/\">Get a Google API Key<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-one-finger-map-mobile\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-one-finger-map-mobile\" aria-expanded=\"false\" aria-controls=\"collapse-one-finger-map-mobile\">Can I let visitors move the map with one finger on mobile?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-one-finger-map-mobile\" aria-labelledby=\"heading-one-finger-map-mobile\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Not with a setting. On phones, Google Maps uses one finger to scroll the page and two fingers to move the map, and it shows the &#8220;use two fingers to move the map&#8221; message. It does this so a large map does not trap visitors who are trying to scroll past it. GeoDirectory keeps Google&#8217;s default behaviour.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your map fills most of the screen on mobile, making it shorter on small screens gives visitors room to scroll the page and makes the two-finger gesture feel less awkward.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-google-maps-loaded-twice\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-google-maps-loaded-twice\" aria-expanded=\"false\" aria-controls=\"collapse-google-maps-loaded-twice\">How do I fix &quot;You have included the Google Maps JavaScript API multiple times&quot; and InvalidValueError?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-google-maps-loaded-twice\" aria-labelledby=\"heading-google-maps-loaded-twice\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Both errors usually mean another plugin or your theme is loading Google Maps on the same page as GeoDirectory. Two copies of the Maps API conflict, and the address search on the add listing form can then fail with &#8220;InvalidValueError: not an instance of HTMLInputElement&#8221;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Remove the Google key from the theme or other plugin, or switch its maps off, on pages where GeoDirectory shows a map.<\/li>\n\n\n\n<li>Keep your key in GeoDirectory > Settings > General > Google Maps API KEY and use the Verify button there.<\/li>\n\n\n\n<li>If you also see ApiNotActivatedMapError, enable the Maps JavaScript API and Places API for the key&#8217;s project in the Google Cloud console.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you use the separate Google Geocoding API Key setting, do not restrict that key by website, because it is used from the server. <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/installation\/get-a-google-api-key\/\">Get a Google API Key<\/a> explains the setup.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-marker-cluster-images-missing\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-marker-cluster-images-missing\" aria-expanded=\"false\" aria-controls=\"collapse-marker-cluster-images-missing\">Why are the marker cluster images not showing?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-marker-cluster-images-missing\" aria-labelledby=\"heading-marker-cluster-images-missing\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Old versions of Marker Cluster loaded the cluster images from a Google Code address that no longer exists, so the clusters showed numbers with no background. Updating GeoDirectory and the Marker Cluster add-on fixes it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the images are still missing after updating, clear your site cache and any CDN or optimisation plugin cache. If you replaced the cluster images with your own, check that those image URLs still load and use https. <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/marker-cluster\/how-to-change-the-marker-cluster-images\/\">How to Change the Marker Cluster Images<\/a> shows where they are set.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-map-no-records-found\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-map-no-records-found\" aria-expanded=\"false\" aria-controls=\"collapse-map-no-records-found\">Why does my GeoDirectory map say &quot;No Records Found&quot;?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-map-no-records-found\" aria-labelledby=\"heading-map-no-records-found\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">The map shows &#8220;No Records Found&#8221; when none of your listings match what the map is asking for. Check these first:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Every listing has a category. The map filters markers by category, so a listing with no category never gets a marker.<\/li>\n\n\n\n<li>The listing is published, not pending or draft.<\/li>\n\n\n\n<li>The listing has an address with a latitude and longitude. Open it in the editor and check the map pin is set.<\/li>\n\n\n\n<li>The map widget or block is set to the right post type, and its category setting includes the categories you used.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If the map itself does not load at all, that is a different problem, usually the Maps API key. See <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/troubleshooting\/maps-have-stopped-working-on-my-site\/\">Maps have stopped working on my site<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-request-denied-error\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-request-denied-error\" aria-expanded=\"false\" aria-controls=\"collapse-request-denied-error\">How do I fix &quot;Search was not successful for the following reason: REQUEST_DENIED&quot;?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-request-denied-error\" aria-labelledby=\"heading-request-denied-error\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Google returns REQUEST_DENIED when your API key is not allowed to make the request. GeoDirectory shows it as &#8220;Search was not successful for the following reason: REQUEST_DENIED&#8221; when someone searches a location, and as &#8220;Geocode was not successful for the following reason: REQUEST_DENIED&#8221; when an address is looked up on the add listing form. Both lookups use the Google Maps API KEY saved in GeoDirectory > Settings > General.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open the project that key belongs to in the Google Cloud console and check:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The Geocoding API and Places API are enabled for the project, alongside the Maps JavaScript API.<\/li>\n\n\n\n<li>Billing is enabled on the project.<\/li>\n\n\n\n<li>If the key is restricted to certain APIs, those APIs are in its list.<\/li>\n\n\n\n<li>If the key is restricted by website (HTTP referrer), your domain is on the list, including the www version if you use it.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Use the Verify button next to the key in the GeoDirectory settings to test it. Our <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/installation\/get-a-google-api-key\/\">Get a Google API Key<\/a> guide walks through creating a key with everything already switched on.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-maps-js-merge\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-maps-js-merge\" aria-expanded=\"false\" aria-controls=\"collapse-maps-js-merge\">Why does my map stop working when a performance plugin merges JavaScript?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-maps-js-merge\" aria-labelledby=\"heading-maps-js-merge\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Optimisation plugins that merge, combine or defer JavaScript can change the order the map files load in, or separate them from the settings GeoDirectory prints on the page. The map then fails to start, often with a Google Maps API key error even though your key is fine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Keep the optimisation on and exclude the map scripts from it. In your plugin&#8217;s exclusion list, add:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>maps.googleapis.com<\/code> (the Google Maps API)<\/li>\n\n\n\n<li><code>geodirectory\/assets<\/code> (GeoDirectory&#8217;s own scripts, including the map files)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Clear the plugin&#8217;s cache and check a page with a map. If it still breaks, turn off script merging to confirm that setting is the cause. If you load maps on demand, also check that the lazy load placeholder still works.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For general advice on caching plugins, see <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/caching\/geodirectory-and-caching-compatibility\/\">GeoDirectory and caching compatibility<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-osm-wrong-city\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-osm-wrong-city\" aria-expanded=\"false\" aria-controls=\"collapse-osm-wrong-city\">Why does the OpenStreetMap address search fill in the wrong city?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-osm-wrong-city\" aria-labelledby=\"heading-osm-wrong-city\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">When you pick an address from the OpenStreetMap suggestions, GeoDirectory fills the city from the address parts OpenStreetMap sends back. It uses the city first, then the city district, then the town. Small villages often come back with none of these, and then GeoDirectory falls back to the state district or the county. That is why you can get a regional name, such as a German Regierungsbezirk, instead of the village or municipality.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OpenStreetMap only gives the municipality as part of the one-line suggestion, so GeoDirectory can&#8217;t reliably pick it out. You have two options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add a Google API key and <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/code-snippets\/use-google-for-geocoding-and-openstreetmaps-for-map-displays\/\">use Google for geocoding while keeping OpenStreetMap for the maps<\/a>. Google returns a locality for most addresses.<\/li>\n\n\n\n<li>If you use Location Manager, tidy up wrong cities afterwards by <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/location-manager\/how-can-i-merge-locations\/\">merging locations<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/differences-between-the-google-maps-and-openstreetmap-apis\/\">differences between the Google Maps and OpenStreetMap APIs<\/a> page explains what else changes between the two.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-fullscreen-map-z-index\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-fullscreen-map-z-index\" aria-expanded=\"false\" aria-controls=\"collapse-fullscreen-map-z-index\">How do I stop my header or menu covering the full screen map?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-fullscreen-map-z-index\" aria-labelledby=\"heading-fullscreen-map-z-index\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">When a visitor opens a GeoDirectory map in full screen, GeoDirectory moves the map container to the top of the page and adds the class <code>body_fullscreen<\/code> to the body. The container gets a z-index of 50000. A theme header or mega menu with a higher z-index still shows on top.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Raise the map&#8217;s z-index only while it&#8217;s full screen, so your menu keeps its normal stacking the rest of the time. Add this in Appearance &gt; Customize &gt; Additional CSS:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-css\">body.body_fullscreen &gt; .stick_trigger_container {\n\tz-index: 999999;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If your header is still on top, use a number higher than your header&#8217;s z-index, or hide the header with <code>body.body_fullscreen<\/code> in front of its selector.<\/p>\n<\/div><\/div><\/div>\n<\/div>\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I add a Waze or \\u0022get directions\\u0022 button to listings?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"For Google Maps directions, add the GD \\u003E Directions block or [\\u003Cspan\\u003E\\u003C\/span\\u003Egd_post_directions] shortcode to your details page. See GD \\u003E Directions.\\n\\n\\n\\nFor Waze, use a GD \\u003E Post Badge that builds a Waze link from the listing\\u0027s coordinates:\\n\\n\\n\\n[\\u003Cspan\\u003E\\u003C\/span\\u003Egd_post_badge key=\\u0022latitude\\u0022 condition=\\u0022is_not_empty\\u0022 badge=\\u0022Open in Waze\\u0022 link=\\u0022https:\/\/waze.com\/ul?ll=%%latitude%%,%%longitude%%\\u0026navigate=yes\\u0022 new_window=\\u00221\\u0022]\\n\\n\\n\\nThe badge only shows when the listing has a location, and %%latitude%% and %%longitude%% are filled in from the listing. The same idea works for other apps that accept coordinates in a link.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Can I switch from Google Maps to OpenStreetMap later?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Yes. Change Maps API in GeoDirectory \\u003E Settings \\u003E General (it is an advanced setting, so show advanced settings first). Choose Google Maps API, OpenStreetMap API or Automatic. If no Google key is saved, GeoDirectory uses OpenStreetMap anyway.\\n\\n\\n\\nYour listings keep the latitude and longitude they were saved with, so existing markers stay where they are. What changes is how new addresses are looked up. Google and OpenStreetMap sometimes name the same city or region differently, so after a switch you may get near duplicates of existing locations. With Location Manager you can merge those cities into one. If you have full street addresses, you can also export your listings and geocode them again in bulk.\\n\\n\\n\\nDifferences between the Google Maps and OpenStreetMap APIs explains the trade-offs, and you can also use Google for geocoding and OpenStreetMap for the map display.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I fix \\u0022Geocode was not successful for the following reason: REQUEST_DENIED\\u0022?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"GeoDirectory shows this message when Google refuses to geocode an address for your API key. It usually appears when you save a listing or move the map marker. Google denies the request for one of these reasons:\\n\\n\\n\\n\\nThe Geocoding API isn\\u0027t enabled for the key\\u0027s project in the Google Cloud Console.\\n\\n\\n\\nBilling isn\\u0027t set up on the Google Cloud project.\\n\\n\\n\\nThe key\\u0027s restrictions don\\u0027t include your site, for example after a move from http to https or to a new domain.\\n\\n\\n\\n\\nThe easiest fix is to create a new key with the Generate Key button at GeoDirectory \\u003E Settings \\u003E General, under Map Settings. Paste the key into Google Maps API KEY, click Verify and save. If your maps key is restricted by HTTP referrers, put a separate key in the Google Geocoding API Key setting (shown with the advanced settings). Get a Google API key walks through each step.\\n\\n\\n\\nClear your page cache afterwards so pages stop loading the old key.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I fix \\u0022Geocode was not successful for the following reason: REQUEST_DENIED\\u0022?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Google returns REQUEST_DENIED when your API key is not allowed to use the Geocoding service. GeoDirectory shows the message when it tries to find an address on the map, for example when you set a location or add a listing.\\n\\n\\n\\nCheck these in the Google Cloud Console:\\n\\n\\n\\n\\nThe Geocoding API is enabled for the project, as well as the Maps JavaScript API and Places API.\\n\\n\\n\\nBilling is enabled on the project.\\n\\n\\n\\nThe key restrictions allow your site. If the key is restricted by HTTP referrer, add your domain with and without www.\\n\\n\\n\\n\\nThen make sure the key is saved in GeoDirectory \\u003E Settings \\u003E General. Our guide Get a Google API key walks through creating a correctly configured key.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why does my map say \\u0022This page can\\u0027t load Google Maps correctly\\u0022?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Google shows that message, and errors such as \\u0022Request denied\\u0022 or \\u0022You must enable Billing on the Google Cloud Project\\u0022, when it refuses your API key. GeoDirectory sends the key you saved, so the fix is in your Google Cloud project:\\n\\n\\n\\n\\nLink a billing account to the project that owns the key. Google needs billing on the project even when your use stays inside the free monthly credit.\\n\\n\\n\\nMake sure the Maps JavaScript API, Geocoding API and Places API are enabled for that project. The button next to the Google Maps API KEY field in GeoDirectory \\u003E Settings \\u003E General creates a key with the APIs GeoDirectory uses.\\n\\n\\n\\nIf you restricted the key by website, add your domain to the allowed referrers.\\n\\n\\n\\nCheck the Quotas page in Google Cloud for any daily limit you set that is now used up.\\n\\n\\n\\n\\nYour browser console names the exact problem, for example BillingNotEnabledMapError or RefererNotAllowedMapError. If you prefer not to use Google, set Maps API to OpenStreetMap under Map Settings on the same page (click Show Advanced first). See Get a Google API Key.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Can I let visitors move the map with one finger on mobile?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Not with a setting. On phones, Google Maps uses one finger to scroll the page and two fingers to move the map, and it shows the \\u0022use two fingers to move the map\\u0022 message. It does this so a large map does not trap visitors who are trying to scroll past it. GeoDirectory keeps Google\\u0027s default behaviour.\\n\\n\\n\\nIf your map fills most of the screen on mobile, making it shorter on small screens gives visitors room to scroll the page and makes the two-finger gesture feel less awkward.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I fix \\u0022You have included the Google Maps JavaScript API multiple times\\u0022 and InvalidValueError?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Both errors usually mean another plugin or your theme is loading Google Maps on the same page as GeoDirectory. Two copies of the Maps API conflict, and the address search on the add listing form can then fail with \\u0022InvalidValueError: not an instance of HTMLInputElement\\u0022.\\n\\n\\n\\n\\nRemove the Google key from the theme or other plugin, or switch its maps off, on pages where GeoDirectory shows a map.\\n\\n\\n\\nKeep your key in GeoDirectory \\u003E Settings \\u003E General \\u003E Google Maps API KEY and use the Verify button there.\\n\\n\\n\\nIf you also see ApiNotActivatedMapError, enable the Maps JavaScript API and Places API for the key\\u0027s project in the Google Cloud console.\\n\\n\\n\\n\\nIf you use the separate Google Geocoding API Key setting, do not restrict that key by website, because it is used from the server. Get a Google API Key explains the setup.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why are the marker cluster images not showing?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Old versions of Marker Cluster loaded the cluster images from a Google Code address that no longer exists, so the clusters showed numbers with no background. Updating GeoDirectory and the Marker Cluster add-on fixes it.\\n\\n\\n\\nIf the images are still missing after updating, clear your site cache and any CDN or optimisation plugin cache. If you replaced the cluster images with your own, check that those image URLs still load and use https. How to Change the Marker Cluster Images shows where they are set.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why does my GeoDirectory map say \\u0022No Records Found\\u0022?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"The map shows \\u0022No Records Found\\u0022 when none of your listings match what the map is asking for. Check these first:\\n\\n\\n\\n\\nEvery listing has a category. The map filters markers by category, so a listing with no category never gets a marker.\\n\\n\\n\\nThe listing is published, not pending or draft.\\n\\n\\n\\nThe listing has an address with a latitude and longitude. Open it in the editor and check the map pin is set.\\n\\n\\n\\nThe map widget or block is set to the right post type, and its category setting includes the categories you used.\\n\\n\\n\\n\\nIf the map itself does not load at all, that is a different problem, usually the Maps API key. See Maps have stopped working on my site.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I fix \\u0022Search was not successful for the following reason: REQUEST_DENIED\\u0022?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Google returns REQUEST_DENIED when your API key is not allowed to make the request. GeoDirectory shows it as \\u0022Search was not successful for the following reason: REQUEST_DENIED\\u0022 when someone searches a location, and as \\u0022Geocode was not successful for the following reason: REQUEST_DENIED\\u0022 when an address is looked up on the add listing form. Both lookups use the Google Maps API KEY saved in GeoDirectory \\u003E Settings \\u003E General.\\n\\n\\n\\nOpen the project that key belongs to in the Google Cloud console and check:\\n\\n\\n\\n\\nThe Geocoding API and Places API are enabled for the project, alongside the Maps JavaScript API.\\n\\n\\n\\nBilling is enabled on the project.\\n\\n\\n\\nIf the key is restricted to certain APIs, those APIs are in its list.\\n\\n\\n\\nIf the key is restricted by website (HTTP referrer), your domain is on the list, including the www version if you use it.\\n\\n\\n\\n\\nUse the Verify button next to the key in the GeoDirectory settings to test it. Our Get a Google API Key guide walks through creating a key with everything already switched on.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why does my map stop working when a performance plugin merges JavaScript?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Optimisation plugins that merge, combine or defer JavaScript can change the order the map files load in, or separate them from the settings GeoDirectory prints on the page. The map then fails to start, often with a Google Maps API key error even though your key is fine.\\n\\n\\n\\nKeep the optimisation on and exclude the map scripts from it. In your plugin\\u0027s exclusion list, add:\\n\\n\\n\\n\\nmaps.googleapis.com (the Google Maps API)\\n\\n\\n\\ngeodirectory\/assets (GeoDirectory\\u0027s own scripts, including the map files)\\n\\n\\n\\n\\nClear the plugin\\u0027s cache and check a page with a map. If it still breaks, turn off script merging to confirm that setting is the cause. If you load maps on demand, also check that the lazy load placeholder still works.\\n\\n\\n\\nFor general advice on caching plugins, see GeoDirectory and caching compatibility.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why does the OpenStreetMap address search fill in the wrong city?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"When you pick an address from the OpenStreetMap suggestions, GeoDirectory fills the city from the address parts OpenStreetMap sends back. It uses the city first, then the city district, then the town. Small villages often come back with none of these, and then GeoDirectory falls back to the state district or the county. That is why you can get a regional name, such as a German Regierungsbezirk, instead of the village or municipality.\\n\\n\\n\\nOpenStreetMap only gives the municipality as part of the one-line suggestion, so GeoDirectory can\\u0027t reliably pick it out. You have two options:\\n\\n\\n\\n\\nAdd a Google API key and use Google for geocoding while keeping OpenStreetMap for the maps. Google returns a locality for most addresses.\\n\\n\\n\\nIf you use Location Manager, tidy up wrong cities afterwards by merging locations.\\n\\n\\n\\n\\nThe differences between the Google Maps and OpenStreetMap APIs page explains what else changes between the two.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I stop my header or menu covering the full screen map?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"When a visitor opens a GeoDirectory map in full screen, GeoDirectory moves the map container to the top of the page and adds the class body_fullscreen to the body. The container gets a z-index of 50000. A theme header or mega menu with a higher z-index still shows on top.\\n\\n\\n\\nRaise the map\\u0027s z-index only while it\\u0027s full screen, so your menu keeps its normal stacking the rest of the time. Add this in Appearance \\u003E Customize \\u003E Additional CSS:\\n\\n\\n\\nbody.body_fullscreen \\u003E .stick_trigger_container {\\n\\tz-index: 999999;\\n}\\n\\n\\n\\nIf your header is still on top, use a number higher than your header\\u0027s z-index, or hide the header with body.body_fullscreen in front of its selector.\"\n            }\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>Answers to common GeoDirectory questions about maps. Click a question to open the answer.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"article\/tags":[],"article\/categories":[211,432],"class_list":["post-2310","gd_place","type-gd_place","status-publish","hentry","gd_placecategory-tips-tricks-more","gd_placecategory-how-tos"],"_links":{"self":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/2310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/types\/gd_place"}],"author":[{"embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/comments?post=2310"}],"version-history":[{"count":3,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/2310\/revisions"}],"predecessor-version":[{"id":2959,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/2310\/revisions\/2959"}],"wp:attachment":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/media?parent=2310"}],"wp:term":[{"taxonomy":"gd_place_tags","embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/tags?post=2310"},{"taxonomy":"gd_placecategory","embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/categories?post=2310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}