Hi Jeremy,
I put the callback as you mentioned, and I deleted the other callback in the
function.
I don't understand what you mean by "groups will screw it up". ;o)
I like the new logic structure, but I can't make it work.
I made a few changes, I don't know is this might affect.
google.load("maps", "2.x"); (instead of) google.load('maps','2');
if (GBrowserIsCompatible()) { // 2 open (instead of)
if(google.maps.BrowserIsCompatible()){
The last code version is:
google.load("maps", "2.x");
function load(){ // 1open
if (GBrowserIsCompatible()) { // 2 open
var lat,lng,location;
if(google.loader.ClientLocation){ //3open
var cl=google.loader.ClientLocation;
lat=cl.latitude;
lng=cl.longitude;
location = [cl.address.city,cl.address.region,cl.address.country].join(',
');
} // 3cclose
else { // 4 open
lat=0; // default lat
lng=0; // default lng
location="CAN'T FIND YOUR LOCATION";
document.getElementById('cantfindyou').innerHTML=location;
} //4close
createMap(lat,lng,location);
} // 2close
} // 1 close
function createMap(lat, lng, location) { // 1open
var mapElement = document.getElementById("map");
mapElement.style.display = 'block';
var map = new google.maps.Map2(mapElement);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new google.maps.LatLng(lat, lng), 13);
} // 1close
google.setOnLoadCallback(load);
searchLocations();
On 01/03/09 14:20, "Jeremy Geerdes" <[email protected]> wrote:
>
> Your code doesn't work because of the way you're using
> google.setOnLoadCallback. Specifically, you use it once to set the
> onload listener to the load function, and then inside the load
> function, you set it to a function that will create your map, etc.
> You need something more like this:
>
> google.load('maps','2');
> function load(){
> if(google.maps.BrowserIsCompatible()){
> var lat,lng,location;
> if(google.loader.ClientLocation){
> var cl=google.loader.ClientLocation;
> lat=cl.latitude;
> lng=cl.longitude;
>
> location
> =[cl.address.city,cl.address.region,cl.address.country].join(', ');
> } else {
> lat=0; // default lat
> lng=0; // default lng
> location="CAN'T FIND YOUR LOCATION";
> document.getElementById('cantfindyou').innerHTML=location;
> }
> createMap(lat,lng,location);
> }
> }
>
> function createMap(lat, lng, location){
> ...
> }
>
> google.setOnLoadCallback(load);
>
>
> Beware the formatting of this code snippet! Groups will screw it up!
>
> Jeremy R. Geerdes
> Effective website design & development
> Des Moines, IA
>
> For more information or a project quote:
> http://jgeerdes.home.mchsi.com
> http://jgeerdes.blogspot.com
> http://jgeerdes.wordpress.com
> [email protected]
>
> Unless otherwise noted, any price quotes contained within this
> communication are given in US dollars.
>
> If you're in the Des Moines, IA, area, check out Debra Heights
> Wesleyan Church!
>
> And check out my blog, Adventures in Web Development, at
> http://jgeerdes.blogspot.com
> !
>
>
> On Mar 1, 2009, at 5:34 AM, Sebastian wrote:
>
>>
>> Hi,
>>
>> Could someone help me?
>>
>> I'm trying to integrate the Google User Location with the Google Store
>> Locator.
>>
>> I've tried many combinations, but I don't manage to make it work.
>>
>> I'd like 1st. to detect the User Location, if so pass the location to
>> the Store Locator, and if not pass a fixed map location.
>>
>> Here is the working code for the User Detection:
>>
>> http://allmybookings.com/userlocator.php
>>
>> and here is the code, "integrated", but not really working. Any other
>> combinations create a conflict. This one, just goes through the User
>> Locator code, but prints the map.
>>
>> google.load("maps", "2.x");
>>
>> function load() {
>> if (GBrowserIsCompatible()) {
>>
>> google.setOnLoadCallback(function() {
>> if (google.loader.ClientLocation) {
>> var cl = google.loader.ClientLocation;
>> var location = [cl.address.city, cl.address.region,
>> cl.address.country].join(', ');
>>
>> createMap(cl.latitude, cl.longitude, location);
>> } else {
>> document.getElementById('cantfindyou').innerHTML = "CAN'T FIND
>> YOUR LOCATION";
>> createMap(0,0,"CAN'T FIND YOUR LOCATION");
>>
>> }
>> });
>>
>> function createMap(lat, lng, location) {
>> var mapElement = document.getElementById("map");
>> mapElement.style.display = 'block';
>> var map = new google.maps.Map2(mapElement);
>> map.addControl(new GLargeMapControl());
>> map.addControl(new GMapTypeControl());
>> map.setCenter(new google.maps.LatLng(lat, lng), 13);
>> map.openInfoWindow(map.getCenter(), document.createTextNode
>> (location));
>> }
>> geocoder = new GClientGeocoder();
>> map = new GMap2(document.getElementById('map'));
>> map.enableDoubleClickZoom();
>> map.enableScrollWheelZoom();
>> map.addControl(new TextualZoomControl());
>>
>>
>> var center = new GLatLng(50.,4.359491); // brussels center
>> 50.823841,4.359491
>> map.setCenter(center, 13);
>>
>> searchLocations();
>> }
>> }
>> GSearch.setOnLoadCallback(load);
>>
>>>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google AJAX APIs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-AJAX-Search-API?hl=en
-~----------~----~----~----~------~----~------~--~---