我正在使用 Google pLaces api 开发一个应用程序。我能够获取使用我的应用程序的用户附近的咖啡馆列表。结果列表包括地点的详细信息,例如地点名称、地址、纬度经度值和电话号码。我想知道的是如何请求 place api 返回用户与结果列表中每个条目之间的距离。我浏览了在 stackoverflow 上发布的几个讨论类似主题的链接。我也浏览了谷歌的文档,但它没有提到关于获得这些距离的任何内容。我想避免使用任何数学公式,如大圆算法,因为在这种情况下,返回的距离将是直线距离,这将不是距离的准确估计。
我浏览的一些链接是: 如何在不嵌入谷歌地图的情况下使用地理定位或类似 API 找到一个地方到另一个地方的距离?
我在stackoverflow上阅读了很多帖子,我还经历了许多教程,如Vogella和theNewBoston,看看我在发布我的应用程序时出错了.我导出了我的包的签名应用程序,创建了新的apk和密钥库.我相信现在不需要设置debuggable = false.Eclipse会自动执行此操作.我可以看到我的开发者控制台显示我的应用程序已发布但是当我尝试在我的手机或电脑上搜索谷歌播放时,我找不到我的应用程序.如果我只使用包名来搜索我的应用程序,我可以找到它.我的应用程序仅适用于小型和普通屏幕手机,而不适用于平板电脑.我尝试使用无数的手机搜索应用程序,没有运气.附在这里是我的清单.请告诉我如何解决这个问题.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MyPackage"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<!-- These 4 lines have been added by user i.e me -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--
The following two permissions are not required to use
Google Maps Android API v2, but are recommended. added by me
-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission android:name="com.MyPackage.permission.MAPS_RECEIVE"
android:protectionLevel="signature"></permission>
<supports-screens
android:anyDensity="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" …Run Code Online (Sandbox Code Playgroud) 我正在使用 Google Places API 开发一个 android 应用程序。直到昨晚,该应用程序运行良好,我打算今天启动它,突然间我开始收到 SSLHandShakeException。我不明白的是这是怎么突然发生的?我用新的包名创建了一个新的 API 密钥,但遇到了同样的错误。请让我知道应该怎么做。
11-05 16:18:46.459: W/System.err(1022): javax.net.ssl.SSLHandshakeException: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: current time: Tue Nov 05 16:18:46 GMT+00:00 2013, validation time: Wed Nov 06 14:00:40 GMT+00:00 2013
11-05 16:18:46.459: W/System.err(1022): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:413)
11-05 16:18:46.459: W/System.err(1022): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:257)
11-05 16:18:46.459: W/System.err(1022): at android.net.SSLCertificateSocketFactory.verifyHostname(SSLCertificateSocketFactory.java:191)
11-05 16:18:46.469: W/System.err(1022): at android.net.SSLCertificateSocketFactory.createSocket(SSLCertificateSocketFactory.java:276)
11-05 16:18:46.469: W/System.err(1022): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:375)
11-05 16:18:46.469: W/System.err(1022): at sn.createSocket(SourceFile:157)
11-05 16:18:46.469: W/System.err(1022): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
11-05 16:18:46.479: W/System.err(1022): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
11-05 16:18:46.479: W/System.err(1022): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) …Run Code Online (Sandbox Code Playgroud) 我写了一些代码,根据它们的突出性来搜索附近的地方.接下来,我想根据用户的上升距离让我的应用搜索位置.为了做到这一点,我了解到我需要使用rankby=distance但rankby不允许使用值radius- 因此以下基于半径的搜索不起作用:
nearPlaces = googlePlaces.search(
gps.getLatitude(),
gps.getLongitude(),
radius,
types
);
Run Code Online (Sandbox Code Playgroud)
我看过几篇博客和文章,人们提出类似的问题,但没有一个提供了似乎有用的答案.如果不是上述情况,我应该使用什么?