Jump to content

google maps


garry27

Recommended Posts

i'm at my wits end with this now so i'm going to show you the entire two scripts in my web appliation to see if you can figure out why it won't work.

the first script is map_data.php which pulls out coordinates out of a database and formats them in a way js should understand. you can see an example of the output data at http://www.nl-webspace.co.uk/~unn_p921847/test/map_data.php


[code]<?php
//function getPubMarkers() {
    require_once('common.php');
    db_connect();
    $sql = mysql_query ( " select Latitude, Longitude, pubName, pubStreetNo, pubStreet, pubCity, pubCounty,
                        pubPostcode, pubPhone from Pubs " ) or die( 'Invalid query: ' . mysql_error() );
        $markers = array();
    while( $elements = mysql_fetch_array($sql) ) {
        $br = '<br>';       
    $markers[] =      '{'   
                                ." 'latitude' : " .$elements[0] .','
                                                        ." 'longitude' : " .$elements[1] .','
                                ." 'name' : '" .$elements[2] ."' "
                                //."'address': '" .$elements[3] .$br .$elements[4] .$br .$elements[5]   
                                //                .$br .$elements[6] .$br .$elements[7] ."' ,"
                                // ."'phone': '" .$elements[8] ."'"
                                      .'},';
    }
    //convert array into a single string variable 
    $markers  = implode( ' ', $markers );
    //remove the end comma in the string                           
    $markers = substr_replace($markers,"",-1);   
     
       
        $jscript = 'var markers =' .'[' .$markers .'];'; 
        // return $jscript;
     
//}
print $jscript;
?> [/code]



the second script is map_function.js which i copied directly from a book:


[code]var centerLatitude = 54.52473;        // global var     
var centerLongitude = -1.556582;        // global var
var startZoom = 13;
var map;
 
//function addMarker()
function init()
{                                                        // JavaScript coding from Purvis et al (2006: p.22, p.29)

  if ( GBrowserIsCompatible() ) {                               
    map = new GMap2(document.getElementById("mapviewer"));
    map.addControl( new GSmallMapControl () );
    //map.addControl( new GMap2TypeControl () );          //undefined?
    //map.addControl( new GLatLng ( centerLatitude, centreLongitude ), startZoom );
        //location = GLatLng(centerLatitude, centerLongitude);
       
        map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
    for (id in markers) {
        addMarker(markers[id].latitude, markers[id].longitude, markers[id].name);  // line 19
    }
  }
}

//opens map when browser window loads up
window.onload = init;
window.onunload = GUnload; [/code]

the script addresses are referenced on the page header of my webpage in the order described. when i load the webpage i get a google map set at the speciified coordinates and zoom level but no markers. my debugger points to line 19 of map_functions.js and states 'error: object expected'

please somone tell me what i can do to fix this
Link to comment
https://forums.phpfreaks.com/topic/26271-google-maps/
Share on other sites

As I said before:

Somewhere in the Javascript portion of your script there needs to be a line that looks something like:
[code]<?php
echo getPubMarkers();
?>[/code]
Without that line, the markers never get defined in Javascript.

For example:
[code]
var centerLatitude = 54.52473;        // global var     
var centerLongitude = -1.556582;        // global var
var startZoom = 13;
var map;
 
//function addMarker()
function init()
{                                                        // JavaScript coding from Purvis et al (2006: p.22, p.29)
<?php echo $markers; ?>  // adding this line will cause the Javascript array "markers" to get initiallized

  if ( GBrowserIsCompatible() ) {                               
    map = new GMap2(document.getElementById("mapviewer"));
    map.addControl( new GSmallMapControl () );
    //map.addControl( new GMap2TypeControl () );          //undefined?
    //map.addControl( new GLatLng ( centerLatitude, centreLongitude ), startZoom );
        //location = GLatLng(centerLatitude, centerLongitude);
       
        map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
    for (id in markers) {
        addMarker(markers[id].latitude, markers[id].longitude, markers[id].name);  // line 19 -- with the above line, this should now work.
    }
  }
}

//opens map when browser window loads up
window.onload = init;
window.onunload = GUnload;
[/code]

Ken
Link to comment
https://forums.phpfreaks.com/topic/26271-google-maps/#findComment-120184
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.