1

我正在使用 monotouch 使用 c# 代码创建 iOS 应用程序...我正在尝试使用以下代码来使用导航/地图应用程序:

var addressDictionary = new NSMutableDictionary();
addressDictionary.Add(NSObject.FromObject("Name"), NSObject.FromObject(selectedLocation.Name));    
MKPlacemark pMark = new MKPlacemark(new CLLocationCoordinate2D (loc.Latitude, loc.Longitude), null);

MKMapItem mapItem = new MKMapItem(pMark);
mapItem.OpenInMaps();

您可以创建一个 NSDictionary 并传递与该位置有关的信息 - 例如地址、名称等。但是,我不知道如何在 c# 代码中创建和使用字典 - 我找到的所有编码示例一直是客观的...

我的全部目标是在地图应用程序中打开一个位置,并传入要显示在地图应用程序地标中的位置名称......使用 openinmaps()......

有没有办法使用 c# 代码创建这个“地址字典”,以便使用 openinmaps 函数将信息传递到地图应用程序中?

以下是一些客观 c 代码的示例:

-(void)showMap
{
    NSDictionary *address = @{
      (NSString *)kABPersonAddressStreetKey: _address.text,
      (NSString *)kABPersonAddressCityKey: _city.text,
      (NSString *)kABPersonAddressStateKey: _state.text,
      (NSString *)kABPersonAddressZIPKey: _zip.text
    };

    MKPlacemark *place = [[MKPlacemark alloc] 
           initWithCoordinate:_coords 
           addressDictionary:address];

    MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:place];

    NSDictionary *options = @{
        MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving
    };

    [mapItem openInMapsWithLaunchOptions:options];
}
4

1 回答 1

4

我还没有尝试过,但是这样的东西应该可以工作 - 使用的 AddressDictionaryMKPlacemark与 AddressBook 使用的格式相同

NSMutableDictionary a = new NSMutableDictionary();

a.Add(ABPersonAddressKey.City, new NSString(city));
a.Add(ABPersonAddressKey.State, new NSString(state));
a.Add(ABPersonAddressKey.Zip, new NSString(zip));
a.Add(ABPersonAddressKey.Street, new NSString(addr1));
于 2013-05-28T16:47:12.450 回答