Для более сложных классов вы можете рассмотреть инструмент jsonpickle :
jsonpickle - это библиотека Python для сериализации и десериализации сложных объектов Python в JSON и из JSON.
Стандартные библиотеки Python для кодирования Python в JSON, такие как json, simplejson и demjson stdlib, могут обрабатывать только примитивы Python, которые имеют прямой эквивалент JSON (например, dicts, lists, string, ints и т. д.). ). jsonpickle строит поверх этих библиотек и позволяет сериализовать более сложные структуры данных в JSON. jsonpickle очень настраивается и расширяется, позволяя пользователю выбирать бэкэнд JSON и добавлять дополнительные бэкэнды.
blockquote>
Для iOS 5.1.1 и ниже, используйте openURL
метод UIApplication
. Это выполнит нормальный iPhone волшебная реинтерпретация URL. так
[someUIApplication openURL:[NSURL URLWithString:@"http://maps.google.com/maps?q=London"]]
должен вызвать приложение карт Google.
From iOS 6, Вы будете вызов Apple's собственное приложение Карт. Для этого настройте MKMapItem
объект с местоположением, которое Вы хотите отобразить, и затем отправить ему эти openInMapsWithLaunchOptions
сообщение. Для запуска в текущем местоположении попробуйте:
[[MKMapItem mapItemForCurrentLocation] openInMapsWithLaunchOptions:nil];
Вы должны будете быть связаны против MapKit для этого (и он запросит доступ местоположения, я верю).
При необходимости в большей гибкости, чем Формат ссылки Google дает Вам, или требуется встроить карту в приложение вместо того, чтобы запуститься, приложение карты вот пример .
Это даже предоставит Вас исходный код, чтобы сделать все встраивание.
Для телефонного вопроса Вы тестируете на средстве моделирования? Это только работает над самим устройством.
кроме того, openURL возвращает bool, который можно использовать для проверки устройство при работе поддержек функциональность. Например, Вы не можете сделать запросы к iPod Touch :-)
Для открытия Google Maps в определенных координатах попробуйте этот код:
NSString *latlong = @"-56.568545,1.256281";
NSString *url = [NSString stringWithFormat: @"http://maps.google.com/maps?ll=%@",
[latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
можно заменить строку latlong текущим местоположением от CoreLocation.
можно также указать уровень масштабирования, с помощью флага (”z“). Значения 1-19. Вот пример:
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@" http://maps.google.com/maps?z=8 "]];
Точно. Код, что необходимо достигнуть этого, является чем-то как этот:
UIApplication *app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString: @"http://maps.google.com/maps?q=London"]];
с тех пор согласно документации , UIApplication только доступен в Делегате Приложения, если Вы не называете sharedApplication.
Вот ссылка на схему URL-адресов Apple для ссылок на карту: https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
Правила создания действительной ссылки на карту следующие:
- Домен должен быть google.com и подобласть должна быть map или ditu.
- Путь должен быть /, / maps, / local, или / m, если запрос содержит site в качестве ключа и local в качестве значения.
- Путь не может быть /maps/*.
- Все параметры должны поддерживаться. См. Список поддерживаемых параметров ** в таблице 1.
- Параметр не может иметь значение q = *, если значение является URL-адресом (поэтому KML не используется).
- Параметры не могут включать view = text или dirflg = r .
** Список поддерживаемых параметров см. По ссылке выше.
"g" заменить на "q"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://maps.google.com/maps?q=London"]]
Если у вас все еще есть проблемы, это видео показывает, как получить "Мои карты" из Google, чтобы они отображались на iphone. Затем вы можете взять ссылку и отправить ее кому угодно и оно работает.