我想在地图上绘制与我通过Google Directions API获得的路线JSON相对应的路线:http://code.google.com/apis/maps/documentation/directions/
我已经想出如何从阶段字段中提取纬度和经度,但这并不能很好地遵循弯曲的道路.我认为我需要的是解码折线信息,我找到了关于如何编码折线的Googles说明:http://code.google.com/apis/maps/documentation/utilities/polylinealgorithm.html
我确实在这里找到了一些代码用于Android以及解码折线的Javascript,例如:
使用Google Directions API地图查看绘制路线 - 解码折线
但是对于Objective-C iPhone代码我找不到相同的内容,任何人都可以帮我这个吗?我敢肯定,如果必须的话,我可以自己做,但如果它已经可以在某个地方使用,那肯定能节省我一些时间...
编辑:这里的关键是能够逐个字符地解码base64编码.更具体地说,我在谷歌的JSON中得到了类似的东西,它使用base64编码进行编码:
... "overview_polyline" : {
"points" : "ydelDz~vpN_@NO@QEKWIYIIO?YCS@WFGBEBICCAE?G@y@RKBEBEBAD?HTpB@LALALCNEJEFSP_@LyDv@aB\\GBMB"
},
...
Run Code Online (Sandbox Code Playgroud)
注意:我应该提一下,这个问题是指Google Maps API v1,使用GMSPolyLine polyLineWithPath在v2中更容易实现,因为下面的许多答案都会告诉你(感谢@cdescours).
iphone json objective-c google-directions-api google-polyline
我正在尝试使用相同的媒体播放器,但更改数据源.这是我正在尝试做的事情:
private MediaPlayer mMediaPlayer;
public void pickFile1() {
initMediaPlayer("myfile1.mp3");
}
public void pickFile2() {
initMediaPlayer("myfile2.mp3");
}
private void initMediaPlayer(String mediafile) {
// Setup media player, but don't start until user clicks button!
try {
if (mMediaPlayer == null) {
mMediaPlayer = new MediaPlayer();
} else {
mMediaPlayer.reset(); // so can change data source etc.
}
mMediaPlayer.setOnErrorListener(this);
AssetFileDescriptor afd = getAssets().openFd(mediafile);
mMediaPlayer.setDataSource(afd.getFileDescriptor());
}
catch (IllegalStateException e) {
Log.d(TAG, "IllegalStateException: " + e.getMessage());
}
catch (IOException e) {
Log.d(TAG, "IOException: " + …Run Code Online (Sandbox Code Playgroud) 我无法让我的编辑字段NumberPicker正常工作,我已经阅读了类似问题的几个有用的答案,但它们似乎都没有解决这个特定的问题.虽然增量和减量按钮可以正常工作,但如果我使用软键盘输入数字,我无法使用该NumberPicker.getValue()方法检索该值.我已经尝试过使用我自己NumberPicker.OnValueChangedListener()但不会被调用,除非我点击向上或向下按钮,而不是当我按下软键盘完成按钮时,如某些人所建议的那样.任何人都可以帮我吗?这是Android的错误吗?
这是我的XML布局:
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/textView1" android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content" android:text="@string/enter_nights_"
android:layout_width="0dp" android:padding="10dip"
android:textColor="@color/black"
></TextView>
<NumberPicker
android:id="@+id/numPick"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
和我的Activity onCreate()中的初始化代码:
mNumNights = (NumberPicker) findViewById(R.id.numPick);
mNumNights.setMinValue(1);
mNumNights.setMaxValue(99);
mNumNights.setValue(mNights);
mNumNights.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
// do something here
Log.d(TAG, "Number of Nights change value.");
}
});
Run Code Online (Sandbox Code Playgroud)
从Activity中退出时,我得到的值如下:
mNights = mNumNights.getValue();
Run Code Online (Sandbox Code Playgroud)
我在Android NumberPicker文档中没有看到任何其他方法.我确实看到一个帖子建议挂钩onEditorActionListener()以获得完成按钮,但这并没有告诉我如何获得价值!总而言之,我的问题是如何获取值以及为什么NumberPicker不会自动更新其值?
谢谢!
编辑:我碰到这个偶然SO问题,这是非常相似,我的问题,答案有看有帮助,虽然我希望能有一个更好的方法比建议在那里.
我有一个应用程序,它将捆绑的m4a音频文件作为本地资源加载,并且它已经运行了很多年了.我正在将应用程序更新到iOS 11.3/XCode 9.3,当我按下我的播放按钮时,它现在在iPad上失败(适用于iPhone):
2018-05-13 20:45:24.437626-0700 my app[6175:218735] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
2018-05-13 20:45:24.437791-0700 my app[6175:218735] Cannot start load of Task <117E064E-ABB3-45F2-8D64-76397B140092>.<0> since it does not conform to ATS policy
2018-05-13 20:45:24.437948-0700 my app[6175:218732] NSURLConnection finished with error - code -1022
Run Code Online (Sandbox Code Playgroud)
我的代码:
NSURL *medURL = [[NSBundle mainBundle] URLForResource: @"MyFile"
withExtension: @"m4a"];
NSError *playerError = nil;
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] …Run Code Online (Sandbox Code Playgroud) objective-c avaudioplayer app-transport-security xcode9.3 ios11.3
我有一个我确定的坐标区域包含我想要为我的应用程序显示的限制.我把它设置为MKCoordinateRegion,中心点为lat,经度和跨度.如何确定当前userLocation是否在我的坐标区域内?
我有一个音频播放 Android 应用程序,它在开始播放时礼貌地执行 requestAudioFocus(),并在停止播放时礼貌地执行 pauseAudioFocus()。有时用户会想要在我的应用程序中播放不同的文件,我希望能够检查我是否已经拥有音频焦点,这样我就不会发出自己的请求。查看 AudioManager 的文档我没有看到这样做的方法 - 似乎是一个相当明显的遗漏。有人知道在调用请求之前是否有办法确定服务是否已经具有音频焦点?
我想允许我的iPhone App用户查看并从他们的Facebook个人资料照片中选择,下载照片以用作个人资料照片.我目前正在使用Facebook SSO SDK并成功登录并访问Graph信息.尝试访问照片信息(成功登录SSO后)使用
[facebook requestWithGraphPath:@"me/albums"];
Run Code Online (Sandbox Code Playgroud)
但我只是得到一个空的数据对象作为回报.我尝试过使用Facebook API资源管理器,它非常有用,它确实为我提供了/ picture和/ photos// album的数据.出于某种原因,我没有使用requestWithGraphPath与我/专辑,我/图片或我/照片获得相同的数据.只是简单的"我"工作正常,但没有给我任何图片信息.谁能告诉我我做错了什么?
注意:这是API参考:Facebook Graph API
我确实得到了这样的图片配置文件:
[facebook requestWithGraphPath:@"me?fields=picture"];
Run Code Online (Sandbox Code Playgroud)
更新:我真的想要所有的配置文件照片,这是一个相册,所以我需要知道如何通过iOS访问相册.我现在已成功获得的个人资料图片.
我根据API为相册添加了"user_photos"和"friends_photos"权限:
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_likes",
@"user_birthday",
@"email",
@"publish_stream",
@"publish_actions",
@"user_photos",
@"friends_photos",
nil];
[facebook authorize:permissions];
Run Code Online (Sandbox Code Playgroud)
当我说我得到空数据时,这是返回的JSON结果(在request:didLoad :)中:
{
data = (
);
}
Run Code Online (Sandbox Code Playgroud)
从我的日志文件输出:
- (void) request:(FBRequest *)request didLoad:(id)result{
NSLog(@"%@",result);
}
Run Code Online (Sandbox Code Playgroud)
最后注意:最终工作的是使用另一个设备,它更新了我的权限,然后一切都开始工作了!我最好的猜测是模拟器和我的iPhone没有更新我的Facebook权限,所以我被拒绝访问照片和获取空数据阵列.
这个问题也是一个很大的帮助:如何在iPhone SDK中获取Facebook相册的照片?
我希望自定义MKMapView userLocation注释,以绘制像官方地图应用程序一样的标题箭头.
我试图在viewForAnnotation中执行此操作:
- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]]) {
}
}
Run Code Online (Sandbox Code Playgroud)
但我无法找到接下来要做的事情来获取UserLocation的视图并自定义它.
非常感谢...
我刚刚为iOS编写了一个带有漂亮照片库的应用程序,现在我想用我的Android应用程序版本做同样的事情.我看到Android Gallery API允许我构建一个滚动的图像库.但我真正想要的是一个带有缩略图网格的苹果照片库样式界面,当点击时,打开所选图像的全屏显示,并允许我使用滑动或左/右箭头浏览照片库工具栏.
在iOS中我使用KTPhotoBrowser来实现这个界面,但是我还没能找到类似Android的东西.任何人都可以指向一个库,甚至是一个带有示例代码的教程,它会给我一个这样的界面,而不必自己滚动它?
更新:我发现GridView教程描述了如何将图像缩略图放入网格中,似乎是完美的选择.Gallery API可用于全尺寸照片浏览器,如@ariefbayu示例代码所示(请参阅下面评论中的链接).它与iPhone风格的画廊并不完全相同,但它非常好.
我想初始化 ValueTuples 的静态只读数组,我想使用此答案中的方法:
var tupleList = new (int Index, string Name)[]
{
(1, "cow"),
(5, "chickens"),
(1, "airplane")
};
Run Code Online (Sandbox Code Playgroud)
但它不适用于静态成员,我必须声明 tupleList 的类型。我可以像这样将其作为元组来执行,但我不知道如何将其作为 ValueTuple 来执行:
static readonly Tuple<uint, string>[] tupleList= new Tuple<uint, string>[]
{
new Tuple<uint, string>(0x1, "string1"),
...
};
Run Code Online (Sandbox Code Playgroud)
但如果我能找出正确的类型,我更愿意使用更干净的格式,到目前为止,我已经尝试了多种类型,但没有成功。
android ×4
iphone ×3
ios ×2
objective-c ×2
arrays ×1
c# ×1
facebook ×1
gps ×1
ios11.3 ×1
ios5 ×1
ipad ×1
json ×1
mapkit ×1
media-player ×1
mkmapview ×1
numberpicker ×1
thumbnails ×1
tuples ×1
userlocation ×1
xcode9.3 ×1