On Thu, Mar 25, 2010 at 9:49 AM, Sheepz <[email protected]> wrote:

> I'm using the Javascript Geocoder.
> However, according to the documentation found at:
>
> http://code.google.com/apis/maps/documentation/v3/services.html#GeocodingResponses
> : "The GeocoderResults object literal is a JSON object ..."
>

I've asked our docs guy to fix that.  The authoritative reference is here:
http://code.google.com/apis/maps/documentation/v3/reference.html#GeocoderResult


> My java code is fairly simple for example's sake, it is:
>
> JAVA SIDE:
> ~~~~~~~~~
>    private void handleCallback(String result, String status,
> AjaxRequestTarget target) {
>
>        JSONDeserializer<GeocodeResult> deser =new
> JSONDeserializer<GeocodeResult>();
>        deser.use( null, GeocodeResult.class );
>
>
>        String fixedResult = fixResult(result);
>        System.out.println("fixedResult=["+fixedResult+"]");
>                GeocodeResult resultObject =
> deser.deserialize( fixedResult );
>        System.out.println("at handleCallBack with result: ["+result
> +"] and status:["+status+"] and result object: ["+resultObject+"]");
>    }
>
>    private String fixResult(String result) {
>        return result.replaceAll("(location.*?)\"b\"(.*?)\"c\"",
> "$1\"lat\"$2\"lon\"");
>    }
>
> HTML SIDE:
> ~~~~~~~~~
>            function handleResponse(results, status){
>                if (status == google.maps.GeocoderStatus.OK) {
>                    map.setCenter(results[0].geometry.location);
>                    var marker = new google.maps.Marker({
>                        map: map,
>                        position: results[0].geometry.location
>                    });
>                     var myJSONText = JSON.stringify(results[0], null);
>                     wicketCallBack(myJSONText,status);
>                } else {
>                    alert("Geocode was not successful for the
> following reason: " + status);
>                }
>            }
>
> NOTES:
> ~~~~~~
> I'm using ajax for moving the data around, my web framework is wicket
> (not GWT), running on tomcat with liferay portal, flexJson on the
> server side, and json2.js (from jquery) on the client side.
> If there's any other data that you need, I'll be happy to provide it!
>
> I understand that you do not provide the json structure for the latlng
> and the latlngbounds object, which is kind of the reason for the post
> - why not? I'm sure I'm not the only one that's doing this - moving
> data from javascript to java and back is kinda the point of json so
> the logic of doing it half way eludes me...
>

The JS geocoder is only intended for use by JS.  Have you considered using
the web service from your server?


> e.
>
> On Mar 24, 6:25 pm, Ben Appleton <[email protected]> wrote:
> > To be sure, you mean the JavaScript Geocoder (
> http://code.google.com/apis/maps/documentation/v3/services.html#Geoco...)
> > not the HTTP Web Service (
> http://code.google.com/apis/maps/documentation/geocoding/index.html)
> right?
> >
> > The JavaScript Geocoder does not return JSON, it returns a JavaScript
> > Object.  For convenience we provide google.maps.LatLng and
> > google.maps.LatLngBounds instances where appropriate, not eg. {lat:...,
> > lng:...} structs.
> >
> > What is your Java code - are you using GWT or are you passing the geocode
> > result to a Java server?
> >
> > - Ben
> >
> >
> >
> > On Thu, Mar 25, 2010 at 8:29 AM, Sheepz <[email protected]> wrote:
> > > Thanks for the answer but if possible, I'd appreciate some more
> > > details, I understand that this is not something you consider as a
> > > defect, can you please elaborate on why you say that? is there a way
> > > to stringify this correctly and I'm just not using it? my workaround
> > > at the moment is some search and replace method that runs on the
> > > object on the server side but it seems like something is being done
> > > wrong, either on my end or in the implementation, so please elaborate
> > > in your response.
> > > Tia,
> > > Elad.
> >
> > > On Mar 24, 5:12 pm, Ben Appleton <[email protected]> wrote:
> > >> This is working as intended.
> >
> > >> On 25 Mar 2010 08:02, "Sheepz" <[email protected]> wrote:
> >
> > >> Hi All, I'm using Json to parse the gecode result and pass it to my
> > >> java code, where I rebuild it.
> > >> This it my JS code for parsing the result to a string:
> > >>                    var myJSONText = JSON.stringify(results[0], null);
> > >> it returns the following for a query about Germany:
> > >> "[
> > >> {
> > >> "types":["country","political"],
> > >> "formatted_address":"Deutschland",
> > >> "address_components":
> > >> [{"long_name":"Deutschland","short_name":"DE","types":
> > >> ["country","political"]}],
> > >> "geometry":{
> > >>        "location":{"b":51.165691,"c":10.451526},
> > >>        "location_type":"APPROXIMATE",
> > >>
>  "viewport":{"c":{"b":47.4430843,"c":54.6103698},"b":{"d":180,"c":
> > >> 2.255725,"b":18.647327}},
> > >>        "bounds":{"c":{"b":47.270127,"c":55.0815},"b":{"d":180,"c":
> > >> 5.8663566,"b":15.0418536}}}}
> >
> > >> ]"
> >
> > >> Note the location, viewport and bounds.
> > >> These are not proper json objects and are therefore parsed in a way
> > >> that cannot be used to reconstruct the object on the java side.
> > >> The objects in question are the LatLng and the LatLngBounds objects.
> > >> Is this a bug that's going to be fixed soon?
> > >> Am i missing something in the way i parse it?
> >
> > >> --
> > >> You received this message because you are subscribed to the Google
> Groups
> > >> "Google Maps JavaScript API v3" group.
> > >> To post to this group, send email to
> >
> > [email protected].>> To unsubscribe from this
> group, send email to
> > >> [email protected]<google-maps-js-api-v3%[email protected]>
> <google-maps-js-api-v3%[email protected]<google-maps-js-api-v3%[email protected]>
> >
> >
> > <google-maps-js-api-v3%[email protected]<google-maps-js-api-v3%[email protected]>
> <google-maps-js-api-v3%[email protected]<google-maps-js-api-v3%[email protected]>
> >
> >
> > >> .
> > >> For more options, visit this group athttp://
> >
> > groups.google.com/group/google-maps-js-api-v3?hl=en.
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> >
> > "Google Maps JavaScript API v3" group.> To post to this group, send email
> to
> >
> > [email protected].> To unsubscribe from this group,
> send email to
> >
> > [email protected]<google-maps-js-api-v3%[email protected]>
> <google-maps-js-api-v3%[email protected]<google-maps-js-api-v3%[email protected]>
> >
> > .> For more options, visit this group at
> >
> > http://groups.google.com/group/google-maps-js-api-v3?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Maps JavaScript API v3" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-maps-js-api-v3%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" 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-maps-js-api-v3?hl=en.

Reply via email to