2013-07-27 20 views
5

Tôi đang phát triển một ứng dụng mà sử dụng dịch vụ Bản đồ cho Windows Phone 8.cách thêm bản đồ google trong windows phone 8 ứng dụng

Tôi đi theo một liên kết http://themightyhedgehog.blogspot.de/2013/01/how-to-use-google-maps-in-your-own.html và cố gắng để phát triển một ứng dụng có chứa Google Map.

Nhưng tôi có một lỗi trong XAML trên dòng MapAppScope:BindingHelpers.TileSource="{Binding GoogleMap}"

và lỗi tôi là:

  1. BuildingHelpers không được hỗ trợ trong Silverlight.
  2. Thuộc tính có thể gắn 'TileSource' không được tìm thấy trong loại 'BuildingHelpers'.
  3. Tiền tố không gian tên "MapAppScope" không được xác định.

Trong XAML:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <Microsoft_Phone_Controls_Maps:Map 
Name="MyMap" 
Grid.Column="1" 
LogoVisibility="Collapsed" 
d:LayoutOverrides="GridBox" 
      MapAppScope:BindingHelpers.TileSource="{Binding GoogleMap}" 
      Margin="0,0,0,2"> 
      <Microsoft_Phone_Controls_Maps:Map.Mode> 
       <MSPCMCore:MercatorMode/> 
      </Microsoft_Phone_Controls_Maps:Map.Mode> 
     </Microsoft_Phone_Controls_Maps:Map> 


    </Grid> 

Trong cs:

namespace Google_Map_App 
{ 
    public enum GoogleType 
    { 
     Street = 'm', 
     Hybrid = 'y', 
     Satellite = 's', 
     Physical = 't', 
     PhysicalHybrid = 'p', 
     StreetOverlay = 'h', 
     WaterOverlay = 'r' 
    } 

    public class Google : TileSource 
    { 
     public Google() 
     { 
      MapType = GoogleType.Street; 
      UriFormat = @"http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}"; 
     } 

     public GoogleType MapType { get; set; } 

     public override Uri GetUri(int x, int y, int zoomLevel) 
     { 
      return new Uri(
       string.Format(UriFormat, (x % 2) + (2 * (y % 2)), 
       (char)MapType, zoomLevel, x, y)); 
     } 
    } 
    public static class BindingHelpers 
    { 
     //Used for binding a single TileSource object to a Bing Maps control 
     #region TileSourceProperty 

     // Name, Property type, type of object that hosts the property, method to call when anything changes 
     public static readonly DependencyProperty TileSourceProperty = 
      DependencyProperty.RegisterAttached("TileSource", typeof(TileSource), 
      typeof(BindingHelpers), new PropertyMetadata(SetTileSourceCallback)); 

     // Called when TileSource is retrieved 
     public static TileSource GetTileSource(DependencyObject obj) 
     { 
      return obj.GetValue(TileSourceProperty) as TileSource; 
     } 

     // Called when TileSource is set 
     public static void SetTileSource(DependencyObject obj, TileSource value) 
     { 
      obj.SetValue(TileSourceProperty, value); 
     } 

     //Called when TileSource is set 
     private static void SetTileSourceCallback(object sender, DependencyPropertyChangedEventArgs args) 
     { 

      var map = sender as Map; 
      var newSource = args.NewValue as TileSource; 
      if (newSource == null || map == null) return; 

      // Remove existing layer(s) 
      for (var i = map.Children.Count - 1; i >= 0; i--) 
      { 
       var tileLayer = map.Children[i] as MapTileLayer; 
       if (tileLayer != null) 
       { 
        map.Children.RemoveAt(i); 
       } 
      } 

      var newLayer = new MapTileLayer(); 
      newLayer.TileSources.Add(newSource); 
      map.Children.Add(newLayer); 
     } 

     #endregion 
    } 
    public partial class MainPage : PhoneApplicationPage 
    { 
     // Constructor 
     public MainPage() 
     { 
      InitializeComponent(); 

      // Sample code to localize the ApplicationBar 
      //BuildLocalizedApplicationBar(); 
     } 


    } 
} 
+0

Bạn có thể đặt mã thực tế không? – Braiam

+0

Tôi đã chỉnh sửa bài đăng của mình và thêm mã. Vui lòng xem bài đăng đó –

+0

Bạn cũng có thể đăng mã lỗi chính xác không? – Braiam

Trả lời

1

Lưu ý rằng việc sử dụng gạch Google Maps trong Bing Maps WP8 hoặc Windows 8 kiểm soát là chống lại các điều khoản sử dụng của cả hai Bản đồ Bing và API của Google Maps. Mọi ứng dụng được tìm thấy trong cửa hàng ứng dụng thực hiện việc này sẽ bị xóa.

+1

Ok chắc chắn tôi sẽ không sử dụng điều này. Thanx cho những thông tin rất quan trọng. –

+1

đừng sợ imran, họ sẽ không bao giờ tìm ra – Softlion

+3

Chúng tôi làm. và chúng tôi xóa các ứng dụng :) – rbrundritt

Các vấn đề liên quan