Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Google Maps Markers Not Showing

Posted on 2013-12-06
6
Medium Priority
?
343 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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 44

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
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

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 44

Accepted Solution

by:
Chris Stanyon earned 2000 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

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

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

CTAs encourage people to do something specific to show interest in your company, product or service. Keep reading to learn why CTAs should always be thought of as extremely important, albeit small, sections of websites.
Ready to get certified? Check out some courses that help you prepare for third-party exams.
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…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
Suggested Courses

721 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