Solved

Google Maps Markers Not Showing

Posted on 2013-12-06
6
325 Views
Last Modified: 2014-01-16
We are displaying a number of markers on a Google Map V2 in a browser window in a Delphi application.  This has worked since 2010 when the feature was developed.  However, the markers have just stopped showing on the map.  We obtained a licence key from Google when we set up the project.  There are notes on the Goggle Maps site about quotas being exceeded and asks you to go to your console to view.  However, we can see no way of doing this.

Our code was copied from examples and uses the following template
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"  
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
  <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
    <title>Google Maps JavaScript API Example</title> 
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=<#KEY>&sensor=false" 
            type="text/javascript"></script> 
    <script type="text/javascript"> 
     function initialize() { 
      if (GBrowserIsCompatible()) { 
        function createMarker(point,html) {
          var marker = new GMarker(point);
          GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(html);
          });
          return marker;
        }
        var map = new GMap2(document.getElementById("map_canvas")); 
        map.setCenter(new GLatLng(<#LAT>, <#LONG>), <#ZOOM>); 
        map.setUIToDefault(); 
        <#MARKERS>
      } 
    } 
    </script> 
  </head> 
  <body onload="initialize()" onunload="GUnload()"> 
    <div id="map_canvas" style="width:<#WIDTH>px; height: <#HEIGHT>px"></div> 
  </body> 
</html>

Open in new window

The <#XXX> tags are replaced with the required data.  The <#MARKER> tag is replaced with the required list of markers of the form
'var point = n.comew GLatLng(%s,%s); '+
           'var marker = createMarker(point,''%s''); '+
           'map.addOverlay(marker);

Open in new window

The %s placeholders are Lat, Long and the link to the markers detailed information.

Any one any idea why this should have stopped working.  I know that we are being encouraged to migrate to v3 of the API, but I have had no information on v2 being turned off.

Many thanks

Roger
0
Comment
Question by:rogerfg7
  • 3
  • 2
6 Comments
 
LVL 53

Expert Comment

by:COBOLdinosaur
ID: 39702450
If you are getting a message about exceeding quotas, then you need to contact Google support to find out how to increase the quotas.  They will probably tell you that you need a paid premium version.

Cd&
0
 

Author Comment

by:rogerfg7
ID: 39702968
No message about exceeding quotas, just markers not appearing.

Roger
0
 
LVL 43

Expert Comment

by:Chris Stanyon
ID: 39703066
You need to switch to version 3. Version 2 was turned off on 19 November (2ish weeks ago).

Have a look here:

https://developers.google.com/maps/documentation/javascript/v2/reference
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 

Author Comment

by:rogerfg7
ID: 39703372
Thanks.  I have re-done all the code except the info-window that pop-up when each marker was clicked.  Each market was added using
'var point = new GLatLng(<Lat>,<Long>); '+  
'var marker = new GMarker(position: point, <Info>); '+   
'map.addOverlay(marker);'

Open in new window

Simple.

v3 seems to need to create a separate infowindow for each marker and Listener events  for each marker, requiring each marker and infowindow to receive a unique name
'var marker1 = new google.maps.Marker({'+
'position: new google.maps.LatLng(<Lat>, <Long>),'+
'title: <Title>, map: map});'+
'var infowindow1 = new google.maps.InfoWindow({content: <Info>});'#13+
'google.maps.event.addListener(marker1, ''click'', function() {'+
'infowindow1.open(map,marker1);});'

Open in new window

Seems much more complicated, but I guess that's progress.
0
 
LVL 43

Accepted Solution

by:
Chris Stanyon earned 500 total points
ID: 39706613
It's no more complicated - in your original code the infowindow and click even were just wrapped in a separate function. So you would still have created a separate eventListener and infoWindow for each marker. Where you had this code:

var point = n.comew GLatLng(%s,%s);
var marker = createMarker(point,''%s''); '+
map.addOverlay(marker);

Open in new window

createMarker() was your own function that created the marker, added the click event and then showed the infoWindow.

You can wrap your new code in a function in the same way,
0
 

Author Comment

by:rogerfg7
ID: 39708430
Sorry, showing my unfamiliarity with JavaScript.  I have made the wrapper and simplified the call for each point.  Works fine.  Just need to get the nice rounded corners that the V2 infowindow had!  Many thanks.
0

Featured Post

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
arrays and radio buttons 10 39
Syntax error creating JSON recordset 4 26
Put POST values into cookies. 14 34
Why is my $_POST not going to results page 10 36
"In order to have an organized way for empathy mapping, we rely on a psychological model and trying to model it in a simple way, so we will split the board to three section for each persona and a scenario and try to see what those personas would Do,…
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
This tutorial demonstrates how to identify and create boundary or building outlines in Google Maps. In this example, I outline the boundaries of an enclosed skatepark within a community park.  Login to your Google Account, then  Google for "Google M…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question