Thanks a lot Alexandre!, It worked like a charm!
Jésica.

On Wed, Sep 7, 2011 at 11:31 AM, Alexandre Ardhuin <
[email protected]> wrote:

> Hi,
>
> You should use Overlays (see
> http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsOverlay.html
> )
>
> In your case :
>
> public class Location extends JavaScriptObject {
>   public static final native Location create(double latitude, double
> longitude) /*-{ return $wnd.Microsoft.Maps.Location(latitude, longitude);
> }-*/;
>
>   // Typically, methods on overlay types are JSNI
>   public final native String getLatitude() /*-{ return this.latitude; }-*/;
>   public final native void setLatitude(String latitude)  /*-{ this.latitude
> = latitude;  }-*/;
> }
>
> // push them in an JsArray
> Location timbuktu = Location.create(lat1, lng1);
> Location kabara = Location.create(lat2, lng2);
> JsArray<Location> locations = JsArray.createArray().cast();
> locations.push(timbuktu);
> locations.push(kabara);
>
> // and with JSNI
> public native void addPolyline(JsArray<Location> locations)/*-{
>     var line = new $wnd.Microsoft.Maps.Polyline(locations);
>     var firstLocation = locations[0];
>
>     map.setView( {zoom:8, center:firstLocation});
>     map.entities.push(line);
> }-*/;
>
>
> Alexandre.
>
>
>
> 2011/9/7 Jésica <[email protected]>
>
>> Thanks for your help Alexandre, I would like to add more context to
>> the issue I'm facing:
>>
>> I have a domain object called Location, with the following structure:
>>
>> public class Location{
>>
>>        Double latitude;
>>        Double longitude;
>>        (...)
>> }
>>
>>
>> **********************************************************************************************
>>
>> public class Test implements EntryPoint {
>>
>> MapWrapper map = MapWrapper.getMapWrapper();
>> map.getMap();
>>
>> Collection<Location> locations = new ArrayList<Location>();
>> locations.add(timbuktu);
>> locations.add(kabara);
>>
>> //Routes section - Polyline
>> JsArrayString locationsJS = JsArrayString.createArray().cast();
>>
>> for (Location location : locations) {
>>  locationsJS.push("{latitude:"+ location.getLatitude() +",
>> longitude:"+location.getLongitude()+"}");
>> }
>>
>> map.addPolyline(locationsJS);
>>
>> }
>>
>>
>> **********************************************************************************************
>>
>> And this is what addPolyline does:
>>
>>    public native void addPolyline(JsArrayString locations)/*-{
>>        var locationsArray = new Array();
>>
>>        for (var i=0; i<locations.length; i++) {
>>                 var parsedJSON = eval('('+locations[i]+')');
>>                var latitude=parsedJSON.latitude;
>>                var longitude=parsedJSON.longitude;
>>                var locationMS = new $wnd.Microsoft.Maps.Location(latitude,
>> longitude);
>>                locationsArray[i] = locationMS;
>>        }
>>
>>        var line = new $wnd.Microsoft.Maps.Polyline(locationsArray);
>>        var firstLocation = locationsArray[0];
>>        map.setView( {zoom:8, center:firstLocation});
>>        map.entities.push(line);
>>        }-*/;
>>
>>
>> **********************************************************************************************
>>
>> I would like to know if there is a better way for handling the array
>> of Java objects. The thing here is that I wouldn't be working with
>> single objects like numbers or strings, but with a custom Java object.
>> Do I need to build a wrapper for doing It? -something like
>> JsLocationArray-, and add in there the possibility of pushing a
>> Location instead of the JSON structure I'm using?
>>
>> Jésica.
>>
>> On Sep 7, 5:13 am, Alexandre Ardhuin <[email protected]>
>> wrote:
>> > Hi,
>> >
>> > As said inhttp://
>> code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI...,
>> > Java arrays appear to javascript as "opaque value that can only be
>> passed
>> > back into Java code".
>> > You have to use JsArray, JsArrayBoolean, JsArrayInteger, JsArrayNumber
>> or
>> > JsArrayString to pass javascript arrays.
>> >
>> > Alexandre.
>> >
>> > 2011/9/6 Jésica <[email protected]>
>> >
>> > > Hi, I'm having a JS exception saying "null" when running the following
>> > > code:
>> >
>> > > //Java Code
>> > > bingMap.addPolyline(locationsArray);
>> >
>> > > //JSNI Code
>> > > public native void addPolyline(Location[] locations)/*-{
>> > >   for (var i = 0; i < locations.length; i++){
>> > >    alert(locations[i]);
>> > >   }
>> > > }-*/
>> >
>> > > Is an extra processing required when managing arrays passed by
>> > > parameter to a native method?
>> > > Thanks in advance!
>> >
>> > > --
>> > > You received this message because you are subscribed to the Google
>> Groups
>> > > "Google Web Toolkit" 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-web-toolkit?hl=en.
>> >
>> >
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google Web Toolkit" 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-web-toolkit?hl=en.
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" 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-web-toolkit?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" 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-web-toolkit?hl=en.

Reply via email to