garry27 Posted November 6, 2006 Share Posted November 6, 2006 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 More sharing options...
kenrbnsn Posted November 6, 2006 Share Posted November 6, 2006 As I said before:Somewhere in the Javascript portion of your script there needs to be a line that looks something like:[code]<?phpecho 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 More sharing options...
garry27 Posted November 6, 2006 Author Share Posted November 6, 2006 ye, it doesn't work :(it won't even throw an undefined function error if i type the call to the function in wrong. it still throws 'line 19 error:object expected'. Link to comment https://forums.phpfreaks.com/topic/26271-google-maps/#findComment-120205 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.