ThinkGeo.com    |     Documentation    |     Premium Support

Silverlight Map Connector

Hi,


I'm currently trying to integrate a Silverlight Map Connector into an asp.net site. I require the ability to manipulate the map control from asp.net e.g. add a point on the map.




How do i expose\access the required methods from the control? normally in silverlight this is achieved using scriptable types and methods though this doesn't work with the silverlight map connector.




I can access exposed scriptable members using the "object" tag but in order to add layers to the map you need use the silverlight map connector.




Is it possible to achieve what i'm trying to achieve?


Regards,

James


 



the below was cut off.I can access exposed scriptable members using the  tag but in order to add layers to the map you need use the silverlight map connector.

Is it possible to achieve what i'm trying to achieve?Regards,

James


 



James,  
  
 Could you provide us the version you are using? I used to use Scriptable type in a sample for a post. It works fine.  
  
 After the latest public release, we upgraded Silverlight Edition from Microsoft Silverlight 2.0 to 3.0 framework; in 3.0 Microsoft Silverlight, it removes System.Web.Silverlight assembly; to maintain the same API, we write a new one to replace it which is not full compatible with the old official one. I think it’s the main reason why it failed. 
  
 It has been fixed in our latest version which will be released in the middle of next week; please keep an eye on our website. 
  
 Please let me know if you have more questions. 
  
 Thanks, 
 Howard

Hi Howard, 


Thanks for the quick reply. We are currently evaluating your product. will a patch be released for the demo version or will i have to purchase the full version? 


Regards, 


James



James, 
  
 The feature I mentioned will be integrated in our latest version. We plan to update our public release in the middle of this week. Also, you can contact support@thinkgeo.com for a temporary version which is not full tested.  
  
 Please keep an eye on our website for the new release. 
  
 Please let me know if you have any questions. 
 Thanks, 
 Howard

Hi Howard,


I downloaded the latest version of the Silverlight edition and i still cannot access [ScriptableMember] using the silverlight map connector? When will this feature be available?


Regards,


James


 



Hi James,


At first, I want to make sure that we are in the same line. You want to use the javascript to manipulate the map control in the client side, such as add a layer, overlay or something else, am I right? Let’s for example, I want to add a marker to the map control use the scriptable members. We can make some change to the AddAMarker sample (which is located in HowDoISamples/Getting Started/):




[ScriptableTypeAttribute]
public partial class AddAMarker : UserControl

[ScriptableMemberAttribute]
public void AddMarkers()
{
    SimpleMarkerOverlay markerOverlay = Map1.Overlays["SimpleMarkerOverlay"] as SimpleMarkerOverlay;
    Marker marker = new Marker(-94.558, 39.078);
    marker.ImageSource = new BitmapImage(new Uri("/theme/marker_red_shadow.png", UriKind.RelativeOrAbsolute));
    marker.Text = "Kansas City";
    marker.Foreground = new SolidColorBrush(Colors.Red);
    marker.FontSize = 12;
    marker.ImageOffsetX = -28;
    marker.ImageOffsetY = -32;
    TextBlock innerText = new TextBlock();
    innerText.Text = "Kansas City";
    marker.Popup.Content = innerText;
    marker.Popup.Height = 30.0;
    marker.Popup.Offset = new Point(10, -30);
    markerOverlay.Markers.Add(marker);
    markerOverlay.Refresh();
}


Then in the javascript of “Default.aspx” page we write a function named AddAMarker like this:


function AddAMarker() {
  var control = document.getElementById('SilverlightMapConnector1');
  control.Content.AddAMarker. AddMarkers();}


 
At last, we have a button the “Default.aspx” page to call the AddAMarker function when you click it, and some markers will be added to the map control.
If there are any misunderstandings please let me know.
Thanks,
Sun

Hi Sun, 
  
 I tried your code in the AddAMarker sample but whenever I click the button on the ASP.NET page, I get a JScript runtime error on the line:  
  
 control.Content.AddAMarker.AddMarkers(); 
  
 I’m using the latest public release Version 3.1.299. 
  
 Thanks, 
  
 Nirish 


Nirish,


In my last post, I missed one statement in the page load function of the AddAMarker user control. You need add the following statement to the page load function:

HtmlPage.RegisterScriptableObject("AddAMarker", this);

 
Please have a try to see what happens and sorry for missing this line of code.
Any more questions please let me know.
Thanks,
Sun

Thanks Sun. Your help is much appreciated.  
  
 Cheers, 
  
 Nirish

You are welcome, Nirish.


Any more questions please let me know.
Thanks,
Sun