This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
map_suite_windows_phone_edition_quick_start_guide [2015/08/20 03:08] 127.0.0.1 external edit |
map_suite_windows_phone_edition_quick_start_guide [2017/03/17 02:43] (current) tgwikiupdate |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Map_Suite_Windows_Phone_Edition_Quick_Start_Guide ====== | + | ====== Map Suite Windows Phone Edition Quick Start Guide ====== |
- | {{article rating}} | + | {{section>upgrade_map_suite_to_10.0}} |
- | {{MsgBox|The Map Suite Windows Phone Edition illustrated QuickStart Guide will guide you through the process of creating a sample application and will help you become familiar with Map Suite. This edition of the QuickStart Guide supports Map Suite Windows Phone Edition 7.0.0.0 or higher.}} | + | <div msgbox>The Map Suite Windows Phone Edition illustrated QuickStart Guide will guide you through the process of creating a sample application and will help you become familiar with Map Suite. This edition of the QuickStart Guide supports Map Suite Windows Phone Edition 7.0.0.0 or higher.</div> |
Welcome to Map Suite™ Windows Phone Edition from ThinkGeo, a full-featured mapping control that makes it easy for any Microsoft .NET developer to add mapping functionality to a Windows Phone application quickly and efficiently. Using the intuitive object model, even developers inexperienced in Geographic Information Systems (GIS) can have fully functional maps working in minutes. | Welcome to Map Suite™ Windows Phone Edition from ThinkGeo, a full-featured mapping control that makes it easy for any Microsoft .NET developer to add mapping functionality to a Windows Phone application quickly and efficiently. Using the intuitive object model, even developers inexperienced in Geographic Information Systems (GIS) can have fully functional maps working in minutes. | ||
Line 11: | Line 11: | ||
===== Download the Sample ===== | ===== Download the Sample ===== | ||
- | {{Filelink}}[[:File:HelloWord_Windows_Phone_8_CSharp.zip|Download Sample Code From This Exercise - C#]] //(155KB)//<br> | + | <faicon fa fa-download fa-lg> {{filehistory:HelloWord_Windows_Phone_8_CSharp.zip|Download Sample Code From This Exercise - C#}} //(155KB)// |
===== Important Note ===== | ===== Important Note ===== | ||
Before you begin, you'll need to download and install all of the tools and packages below: | Before you begin, you'll need to download and install all of the tools and packages below: | ||
- | *[[http://www.microsoft.com/visualstudio/eng/downloads|Visual Studio 2012]] | + | * [[http://www.microsoft.com/visualstudio/eng/downloads|Visual Studio 2012]] |
- | *[[http://dev.windowsphone.com/en-us/downloadsdk|Windows Phone SDK 8.0]] | + | * [[http://dev.windowsphone.com/en-us/downloadsdk|Windows Phone SDK 8.0]] |
Please check here for more detailed: [[http://msdn.microsoft.com/en-US/library/windowsphone/develop/ff626524(v=vs.105).aspx|System requirements for Windows Phone Emulator]]. | Please check here for more detailed: [[http://msdn.microsoft.com/en-US/library/windowsphone/develop/ff626524(v=vs.105).aspx|System requirements for Windows Phone Emulator]]. | ||
Line 24: | Line 24: | ||
Let's start with a new Windows Phone Application in Visual Studio 2012 IDE and call it "HelloWorld" (see Figures 1, 2). | Let's start with a new Windows Phone Application in Visual Studio 2012 IDE and call it "HelloWorld" (see Figures 1, 2). | ||
- | {{Figure|QSG_WindowsPhone8_Img1.png|Figure 1. Creating a new project in the Visual Studio 2012 IDE.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img1.png}} |
+ | \\ | ||
+ | //Figure 1. Creating a new project in the Visual Studio 2012 IDE.// | ||
- | {{Figure|QSG_WindowsPhone8_Img2.png|Figure 2. Select "Windows Phone Application" and name it "HelloWorld".}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img2.png}} |
+ | \\ | ||
+ | //Figure 2. Select "Windows Phone Application" and name it "HelloWorld".// | ||
- | {{Figure|QSG_WindowsPhone8_Img3.png|Figure 3. Select "Windows Phone OS 8.0" as the “Target Windows Phone OS Version“ .}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img3.png}} |
+ | \\ | ||
+ | //Figure 3. Select "Windows Phone OS 8.0" as the “Target Windows Phone OS Version“ .// | ||
==== Adding the Map Control to the Visual Studio IDE Toolbox ==== | ==== Adding the Map Control to the Visual Studio IDE Toolbox ==== | ||
Line 35: | Line 41: | ||
**1.** First of all, double-click "MainPage.xaml" in the "HelloWorld" project. Make sure your toolbox contains Windows Phone controls, and then hover over the Toolbox and right-click anywhere on the list of controls. You will get a pop-up menu. Select "Choose Items..." (See Figure 4) | **1.** First of all, double-click "MainPage.xaml" in the "HelloWorld" project. Make sure your toolbox contains Windows Phone controls, and then hover over the Toolbox and right-click anywhere on the list of controls. You will get a pop-up menu. Select "Choose Items..." (See Figure 4) | ||
- | {{Figure|QSG_WindowsPhone8_Img4.png|Figure 4. Select "Choose Items".}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img4.png}} |
+ | \\ | ||
+ | //Figure 4. Select "Choose Items".// | ||
**2.** The "Choose Toolbox Items" dialog will appear. Within this dialog, switch to the “Windows Phone Components” tab, and then click the "Browse..." button. Finally, navigate to the "C:\Program Files (x86)\ThinkGeo\Map Suite Windows Phone Evaluation Edition 7.0\Developer Reference\WindowsPhoneEdition\Client\WindowsPhoneEdition.dll" file. | **2.** The "Choose Toolbox Items" dialog will appear. Within this dialog, switch to the “Windows Phone Components” tab, and then click the "Browse..." button. Finally, navigate to the "C:\Program Files (x86)\ThinkGeo\Map Suite Windows Phone Evaluation Edition 7.0\Developer Reference\WindowsPhoneEdition\Client\WindowsPhoneEdition.dll" file. | ||
- | {{Figure|QSG_WindowsPhone8_Img5.png| Figure 5. The "Map" control will appear in the “Choose Toolbox Items” list. Click OK to confirm this operation.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img5.png}} |
+ | \\ | ||
+ | //Figure 5. The "Map" control will appear in the “Choose Toolbox Items” list. Click OK to confirm this operation.// | ||
**3.** You should now have the Map control available in your Toolbox as shown in Figure 6 below. | **3.** You should now have the Map control available in your Toolbox as shown in Figure 6 below. | ||
- | {{Figure|QSG_WindowsPhone8_Img6.png|Figure 6. Windows Phone Map is now available in the toolbox.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img6.png}} |
+ | \\ | ||
+ | //Figure 6. Windows Phone Map is now available in the toolbox.// | ||
**4.** Let's go to the XAML code area and delete the auto-generated content of the Grid element. (See Figure 7) | **4.** Let's go to the XAML code area and delete the auto-generated content of the Grid element. (See Figure 7) | ||
- | {{Figure|QSG_WindowsPhone8_Img7.png|Figure 7. Delete the auto-generated content of the Grid element.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img7.png}} |
+ | \\ | ||
+ | //Figure 7. Delete the auto-generated content of the Grid element.// | ||
**5.** Drag the map icon from the toolbox into the XAML code, and then set its name to "Map1" and its size to 480x768. (See Figure 8) | **5.** Drag the map icon from the toolbox into the XAML code, and then set its name to "Map1" and its size to 480x768. (See Figure 8) | ||
- | {{Figure|QSG_WindowsPhone8_Img8.png|Figure 8. The Windows Phone map namespace is added to the XAML automatically.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img8.png}} |
+ | \\ | ||
+ | //Figure 8. The Windows Phone map namespace is added to the XAML automatically.// | ||
===== How to display a simple map at the client side ===== | ===== How to display a simple map at the client side ===== | ||
Line 58: | Line 74: | ||
**2.** Add an event handler for the Map's "Loaded" event in XAML code: | **2.** Add an event handler for the Map's "Loaded" event in XAML code: | ||
- | <source lang="xml"> | + | <code xml> |
<my:Map Name="Map1" Width="480" Height="768" Loaded="Map1_Loaded"/> | <my:Map Name="Map1" Width="480" Height="768" Loaded="Map1_Loaded"/> | ||
- | </source> | + | </code> |
Then in the code-behind, add the following code: | Then in the code-behind, add the following code: | ||
- | <source lang="csharp"> | + | <code csharp> |
using System.Windows; | using System.Windows; | ||
using Microsoft.Phone.Controls; | using Microsoft.Phone.Controls; | ||
Line 91: | Line 107: | ||
} | } | ||
} | } | ||
- | </source> | + | </code> |
In the code, we are using WorldMapKitWmsWindowsPhoneOverlay as the base map; you can choose to use Bing Maps, Google Maps or OpenStreetMap as well. | In the code, we are using WorldMapKitWmsWindowsPhoneOverlay as the base map; you can choose to use Bing Maps, Google Maps or OpenStreetMap as well. | ||
Line 97: | Line 113: | ||
If you compile and run the app in the emulator, your map should look like the one below. (See Figure 9) | If you compile and run the app in the emulator, your map should look like the one below. (See Figure 9) | ||
- | {{Figure|QSG_WindowsPhone8_Img9.png|Figure 9. Display a simple map.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img9.png}} |
+ | \\ | ||
+ | //Figure 9. Display a simple map.// | ||
==== Navigate the Map ==== | ==== Navigate the Map ==== | ||
Line 105: | Line 123: | ||
**1.** Add Shapefiles (SHP, SHX, DBF, IDS, IDX...) into your project, and set their build action to "Content". | **1.** Add Shapefiles (SHP, SHX, DBF, IDS, IDX...) into your project, and set their build action to "Content". | ||
- | {{Figure|QSG_WindowsPhone8_Img10.png|Figure 10. Adding Shapefiles to the "HelloWorld" project.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img10.png}} |
+ | \\ | ||
+ | //Figure 10. Adding Shapefiles to the "HelloWorld" project.// | ||
These Shapefiles will be integrated into the XAP file and run at the client side. Later, we'll introduce a way to render your map at the server side. | These Shapefiles will be integrated into the XAP file and run at the client side. Later, we'll introduce a way to render your map at the server side. | ||
Line 111: | Line 131: | ||
**2.** In the code-behind, add the following code: | **2.** In the code-behind, add the following code: | ||
- | <source lang="csharp"> | + | <code csharp> |
using System; | using System; | ||
using System.IO; | using System.IO; | ||
Line 164: | Line 184: | ||
StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri(fileName, UriKind.RelativeOrAbsolute)); | StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri(fileName, UriKind.RelativeOrAbsolute)); | ||
Stream stream = new IsolatedStorageFileStream(isolatedStorageFileName, FileMode.CreateNew, FileAccess.ReadWrite, isoStore); | Stream stream = new IsolatedStorageFileStream(isolatedStorageFileName, FileMode.CreateNew, FileAccess.ReadWrite, isoStore); | ||
- | byte[[]] bytes = new byte[[1024]]; | + | byte[] bytes = new byte[1024]; |
long blockCount = streamResourceInfo.Stream.Length / bytes.Length; | long blockCount = streamResourceInfo.Stream.Length / bytes.Length; | ||
for (int i = 0; i < blockCount; i++) | for (int i = 0; i < blockCount; i++) | ||
Line 180: | Line 200: | ||
} | } | ||
} | } | ||
- | </source> | + | </code> |
Here we are using ShapeFileFeatureLayer, which reads the files from isolated storage directly. | Here we are using ShapeFileFeatureLayer, which reads the files from isolated storage directly. | ||
Line 186: | Line 206: | ||
If you compile and run the app in the emulator, your map should look like the one below. (See Figure 11) | If you compile and run the app in the emulator, your map should look like the one below. (See Figure 11) | ||
- | {{Figure|QSG_WindowsPhone8_Img11.png|Figure 11. Rendering your own Shapefiles at the client side.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img11.png}} |
+ | \\ | ||
+ | //Figure 11. Rendering your own Shapefiles at the client side.// | ||
===== How to use the TextStyle ===== | ===== How to use the TextStyle ===== | ||
The TextStyle is used to label items on your map. Because every Shapefile has a related .dbf file that includes descriptions for each record, the most common way to use the TextStyle is for labeling. For example, the Shapefile containing the locations of the major cities of the US has a corresponding .dbf file that contains the field "AREANAME". We can use this field to label the cities on our map. (See Figure 12) | The TextStyle is used to label items on your map. Because every Shapefile has a related .dbf file that includes descriptions for each record, the most common way to use the TextStyle is for labeling. For example, the Shapefile containing the locations of the major cities of the US has a corresponding .dbf file that contains the field "AREANAME". We can use this field to label the cities on our map. (See Figure 12) | ||
- | {{Figure|QSG_WindowsPhone8_Img12.png|Figure 12. The AREANAME column in the DBF file.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img12.png}} |
+ | \\ | ||
+ | //Figure 12. The AREANAME column in the DBF file.// | ||
Map Suite has many TextStyles built in that will help us quickly design attractive labels for the states on our map. We can just pick the TextStyle we like and use it. | Map Suite has many TextStyles built in that will help us quickly design attractive labels for the states on our map. We can just pick the TextStyle we like and use it. | ||
Line 197: | Line 221: | ||
Based on the code we have in the last section, we simply need to add the following line of code to the "Map1_Loaded" method: | Based on the code we have in the last section, we simply need to add the following line of code to the "Map1_Loaded" method: | ||
- | <source lang="csharp"> | + | <code csharp> |
shapeFileLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = new TextStyle("AREANAME", new GeoFont("Arial", 20), new GeoSolidBrush(GeoColor.SimpleColors.Black)); | shapeFileLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = new TextStyle("AREANAME", new GeoFont("Arial", 20), new GeoSolidBrush(GeoColor.SimpleColors.Black)); | ||
- | </source> | + | </code> |
Compile and run the app in the emulator and your map should look like the one below. (See Figure 13) | Compile and run the app in the emulator and your map should look like the one below. (See Figure 13) | ||
- | {{Figure|QSG_WindowsPhone8_Img13.png|Figure 13. Rendering Shapefiles at the client side with a TextStyle for labels.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img13.png}} |
+ | \\ | ||
+ | //Figure 13. Rendering Shapefiles at the client side with a TextStyle for labels.// | ||
===== How to render your own Shapefiles at the server side ===== | ===== How to render your own Shapefiles at the server side ===== | ||
Line 210: | Line 236: | ||
**1.** Create another "ASP.NET Web Application" project in the "HelloWorld" solution. | **1.** Create another "ASP.NET Web Application" project in the "HelloWorld" solution. | ||
- | {{Figure|QSG_WindowsPhone8_Img14.png|Figure 14. Create a new Web Application project.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img14.png}} |
+ | \\ | ||
+ | //Figure 14. Create a new Web Application project.// | ||
Select "ASP.NET Web Application" and set its name to "HelloWorldConnector". | Select "ASP.NET Web Application" and set its name to "HelloWorldConnector". | ||
Line 222: | Line 250: | ||
Next, add the Shapefiles we need to render to the project's "App_Data" folder and set their "Build Action" to "Content". | Next, add the Shapefiles we need to render to the project's "App_Data" folder and set their "Build Action" to "Content". | ||
- | {{Figure|QSG_WindowsPhone8_Img15.png|Figure 15. Adding Shapefiles to the "HelloWorldConnector" project.}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img15.png}} |
+ | \\ | ||
+ | //Figure 15. Adding Shapefiles to the "HelloWorldConnector" project.// | ||
**3.** Add the following configuration to the web.config in the "handlers" section under the "system.webServer" section: | **3.** Add the following configuration to the web.config in the "handlers" section under the "system.webServer" section: | ||
- | <source lang="xml"> | + | <code xml> |
<add name="GeoTileResource" path="HellowWorldConnector.axd" verb="*" preCondition="integratedMode" type="ThinkGeo.MapSuite.WindowsPhoneEdition.TileHandler"/> | <add name="GeoTileResource" path="HellowWorldConnector.axd" verb="*" preCondition="integratedMode" type="ThinkGeo.MapSuite.WindowsPhoneEdition.TileHandler"/> | ||
- | </source> | + | </code> |
Next, add the following configuration to the web.config file in the "HttpHandlers" section: | Next, add the following configuration to the web.config file in the "HttpHandlers" section: | ||
- | <source lang="xml"> | + | <code xml> |
<add path="HellowWorldConnector.axd" verb="*" type="ThinkGeo.MapSuite.WindowsPhoneEdition.TileHandler"/> | <add path="HellowWorldConnector.axd" verb="*" type="ThinkGeo.MapSuite.WindowsPhoneEdition.TileHandler"/> | ||
- | </source> | + | </code> |
Finally, add the following configuration to the web.config file in the "appSetting" section: | Finally, add the following configuration to the web.config file in the "appSetting" section: | ||
- | <source lang="xml"> | + | <code xml> |
<add key="PluginsPath" value="\Bin"/> | <add key="PluginsPath" value="\Bin"/> | ||
- | </source> | + | </code> |
This configuration sets the path from which plugins will be read. You are free to change this to another folder, but if you do, you will need to copy all of the plugins you build into that folder. | This configuration sets the path from which plugins will be read. You are free to change this to another folder, but if you do, you will need to copy all of the plugins you build into that folder. | ||
Line 250: | Line 280: | ||
Then add the following code to this class: | Then add the following code to this class: | ||
- | <source lang="csharp"> | + | <code csharp> |
using System.Web; | using System.Web; | ||
using ThinkGeo.MapSuite.Core; | using ThinkGeo.MapSuite.Core; | ||
Line 281: | Line 311: | ||
} | } | ||
} | } | ||
- | </source> | + | </code> |
At this point, compile the project and copy the resulting DLL to the folder specified in web.config. Now you have finished building the server piece. The next step is to add the rendered results to the client application. | At this point, compile the project and copy the resulting DLL to the folder specified in web.config. Now you have finished building the server piece. The next step is to add the rendered results to the client application. | ||
Line 287: | Line 317: | ||
**6.** Based on what we already have done in the last section, we only need to add the following code to the "Map1_Loaded" method to make it work: | **6.** Based on what we already have done in the last section, we only need to add the following code to the "Map1_Loaded" method to make it work: | ||
- | <source lang="csharp"> | + | <code csharp> |
ServerLayerOverlay serverLayerOverlay = new ServerLayerOverlay("HelloWorldOverlay", new Uri("http://192.168.0.80:9000/HellowWorldConnector.axd")); | ServerLayerOverlay serverLayerOverlay = new ServerLayerOverlay("HelloWorldOverlay", new Uri("http://192.168.0.80:9000/HellowWorldConnector.axd")); | ||
Map1.Overlays.Add(serverLayerOverlay); | Map1.Overlays.Add(serverLayerOverlay); | ||
- | </source> | + | </code> |
**NOTE:** The WindowsPhone Emulator provided by “WindowsPhone SDK 8” is unable to works with http://localhost/, so here there are 2 options that we can take to work around the problem before running the application: | **NOTE:** The WindowsPhone Emulator provided by “WindowsPhone SDK 8” is unable to works with http://localhost/, so here there are 2 options that we can take to work around the problem before running the application: | ||
- | * Deploy the HelloWorldConnector site to IIS, and then access the service using http://<IP> rather than http://localhost. | + | * Deploy the HelloWorldConnector site to IIS, and then access the service using <html>http://[IP] rather than http://localhost.</html> |
- | + | * Using the IIS express in Visual Studio, in this way, we need to do more configurations in Visual Studio. Please refer to http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580(v=vs.105).aspx#BKMK_Settingupprojectstodemonstratetheproblemandthesolution for more detail. | |
- | * Using the IIS express in Visual Studio, in this way, we need to do more configurations in Visual Studio. Please refer to http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580(v=vs.105).aspx#BKMK_Settingupprojectstodemonstratetheproblemandthesolution for more detail. | + | For example. in this Quick Start, we take the first one. We deploy the site to the test machine’s IIS and take its IP http://192.168.0.80:9000 to access the service provided by Asp.NET applicaiton, the code should be looks like as following: |
- | For example. in this Quick Start, we take the first one. We deploy the site to the test machine’s IIS and take its IP http://192.168.0.80:9000 to access the service provided by Asp.NET applicaiton, the code should be looks like as following: | + | <code csharp> |
- | <source lang="csharp"> | + | |
ServerLayerOverlay serverLayerOverlay = new ServerLayerOverlay("HelloWorldOverlay", new Uri("http://192.168.0.80:9000/HellowWorldConnector.axd")); | ServerLayerOverlay serverLayerOverlay = new ServerLayerOverlay("HelloWorldOverlay", new Uri("http://192.168.0.80:9000/HellowWorldConnector.axd")); | ||
Map1.Overlays.Add(serverLayerOverlay); | Map1.Overlays.Add(serverLayerOverlay); | ||
- | </source> | + | </code> |
Please make sure this code is located before the code that adds the LayerOverlay, otherwise the images of US states will cover the images of US major cities. | Please make sure this code is located before the code that adds the LayerOverlay, otherwise the images of US states will cover the images of US major cities. | ||
Compile and run the app in the emulator and your map should look like the one below. (See Figure 16) | Compile and run the app in the emulator and your map should look like the one below. (See Figure 16) | ||
- | {{Figure|QSG_WindowsPhone8_Img16.png|Figure 16. Rendering your own Shapefiles at the server side.|thumb|300px}} | + | {{windowsphoneedition:QSG_WindowsPhone8_Img16.png?300}} |
+ | \\ | ||
+ | //Figure 16. Rendering your own Shapefiles at the server side.// | ||
- | {{MsgBox|Note: If you want to access the connector from a Windows Phone handset, you need to deploy the web application to a public-facing Internet Information Services (IIS) server and change the code that creates the ServerLayerOverlay to point to your server's public URL.}} | + | <div msgbox>Note: If you want to access the connector from a Windows Phone handset, you need to deploy the web application to a public-facing Internet Information Services (IIS) server and change the code that creates the ServerLayerOverlay to point to your server's public URL.</div> |
+ | ===== Summary ===== | ||
- | ===== Summary ===== | ||
You now know the basics of using Map Suite Windows Phone Edition and are able to start adding this functionality into your own applications. As you begin developing with Map Suite, you'll want to keep the following in mind: | You now know the basics of using Map Suite Windows Phone Edition and are able to start adding this functionality into your own applications. As you begin developing with Map Suite, you'll want to keep the following in mind: | ||
+ | - It is of the utmost importance that the units of measurement (feet, meters, decimal degrees, etc.) be set properly for the map, based on the requirements of your data. | ||
+ | - A Map is the basic class that contains all of the other objects that are used to define how the map will be rendered. | ||
+ | - A Map has one-to-many Overlays. An Overlay contains one-to-many Layers. A Layer contains the data (from Shapefiles or other data sources) for drawing. | ||
+ | - A Layer can have one-to-many ZoomLevels. ZoomLevels help to define ranges of when a layer should be shown or hidden. | ||
- | #It is of the utmost importance that the units of measurement (feet, meters, decimal degrees, etc.) be set properly for the map, based on the requirements of your data. | + | <faicon fa fa-download fa-lg> {{filehistory:HelloWorld Windows Phone CSharp.zip|Download Sample Code From This Exercise - C#}} //(253 KB)// |
- | #A Map is the basic class that contains all of the other objects that are used to define how the map will be rendered. | + | |
- | #A Map has one-to-many Overlays. An Overlay contains one-to-many Layers. A Layer contains the data (from Shapefiles or other data sources) for drawing. | + | |
- | #A Layer can have one-to-many ZoomLevels. ZoomLevels help to define ranges of when a layer should be shown or hidden. | + | |
- | <br> | + | |
- | + | ||
- | {{Filelink}}[[:File:HelloWorld Windows Phone CSharp.zip|Download Sample Code From This Exercise - C#]] //(253 KB)//<br> | + | |
- | + | ||
- | [[Category:Map Suite Windows Phone Edition]] [[Category:Windows Phone]] [[Category:Silverlight]] [[Category:GIS]] [[Category:.NET]] | + |