The documentation states : The Geocoder class requires a backend service that is not included in the core android framework, how/where can I obtain such a service?
It seems It's a bug in the emulator for 2.2 and there is a bug fix about it, for details see
http://code.google.com/p/android/issues/detail?id=8816
I have found a workaround to the issue. I used the standard google api:
http://code.google.com/apis/maps/documentation/geocoding/
I have created a method that received a String address like "220+victoria+square" and returns a JSONObject with the response of the HTTP Call
public static JSONObject getLocationInfo(String address) {
HttpGet httpGet = new HttpGet("http://maps.google.
+ "com/maps/api/geocode/json?address=" + address
+ "ka&sensor=false");
HttpClient client = new DefaultHttpClient();
HttpResponse response;
StringBuilder stringBuilder = new StringBuilder();
try {
response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
InputStream stream = entity.getContent();
int b;
while ((b = stream.read()) != -1) {
stringBuilder.append((char) b);
}
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
JSONObject jsonObject = new JSONObject();
try {
jsonObject = new JSONObject(stringBuilder.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsonObject;
}
After executing this, another method converts that JSONObject into a GeoPoint.
public static GeoPoint getGeoPoint(JSONObject jsonObject) {
Double lon = new Double(0);
Double lat = new Double(0);
try {
lon = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
.getJSONObject("geometry").getJSONObject("location")
.getDouble("lng");
lat = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
.getJSONObject("geometry").getJSONObject("location")
.getDouble("lat");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6));
}
However this solution is extremely nasty and coupled..
PS. you should add
<uses-library android:name="com.google.android.maps"></uses-library>
to AndroidManifest.xml or application could not find GeoPoint class.
分享到:
相关推荐
此仓库已移动: : 此版本将被存档一段时间。... 确保在构建过程中或直接使用脚本代码包含geocoder-service.js文件。 用法 将geocoderService注入您的控制器并按如下方式使用 $scope . latitude = null ; $scope .
演示了如何使用边界框对Android Geocoder进行编码时出现的问题。 AOSP问题-https: id 75575 gmaps-api-issue- id=7142 用法: 运行项目 输入搜索字词(或使用默认字词) 点击“使用边界框运行Geocoder”以...
此 Geocoder 具有与 android.location.Geocoder 类似的 API,但它是独立于设备的实现并提供更丰富的 Address 对象。 有关更多详细信息,请参阅示例项目。 最低 API 级别 7 将此添加到 build.gradle 依赖项中,将 ...
这是Android内置的Geocoder的独立于设备且可插拔的替代产品。 用于处理地理编码和反向地理编码的类。 地理编码是将街道地址或其他位置描述转换为(纬度,经度)坐标的过程。 反向地理编码是将(纬度,经度)坐标...
楼主实战,根据自身需求加在对应位置即可————————————————强调!强调!强调!,里面代码功能只包含...当点击获取坐标功能按钮,实时获取经纬度传输到文本框,然后通过Geocoder工具进行逆向地理编码。
Java中的Geocoder是一个用于地理编码和反向地理编码的接口,它允许开发人员将地址转换为经纬度坐标或将坐标转换回地址。在Java应用程序中,如果你需要处理与地理位置相关的任务,比如地图显示、导航或者位置服务,...
Android中的GPS应用,讲述了LocationManager、LocationProvider、跟踪、定位、Geocoder正逆向编解码和可视化位置服务 第三篇 应用篇 第15章 Android应用案例——移动警务通 Android 应用案例——移动警务通,通过...
**Laravel 开发与 Google Geocoder** 在 Laravel 框架中进行开发时,有时我们需要集成外部服务,例如 Google 地图的 Geocoding API,来实现地址的解析和地理位置的转换。`google-geocoder` 是一个针对 Laravel 4 和...
ol-geocoder, OpenLayers的Geocoder Nominatim OpenLayers控制编码器 用于 的编码器扩展。 需要 OpenLayers或者更高。 演示你可以在这里看到演示或者在 jsFiddle,如果你愿意。 还有一个用于创建自定义提供程序插件...
Google Maps的Place Picker在Android中已被弃用,并告知我们转移到付费API。 多次加载后,“自动完成”,“附近”和“地方”照片API将会收费。 幸运的是,“移动和地理编码器”上的“静态和动态地图”仍然免费。 ...
这是Pro Android学习系列中location部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512
在本文中,我们将深入探讨`Laravel开发-geocoder-laravel`这个地理位置操作工具集,它是基于Geocoder库的一个扩展,专为Laravel框架设计。这个工具包为开发者提供了便捷的方式来处理与地理位置相关的任务,例如地址...
**Laravel 开发与 Geocoder** 在 Laravel 开发过程中,我们常常需要处理地理位置相关的数据,例如根据IP地址获取用户所在的经纬度,或者根据经纬度反向查询对应的地址。`laravel-geocoder` 是一个专门为 Laravel 5 ...
$geocoder = new Geocoder(); $geocoder->registerProvider($provider); $results = $geocoder->geocode('1, Place des Halles, Paris, France'); foreach ($results as $result) { echo $result->getCoordinates...
$adapter, '<MAXMIND_API_KEY>', $service, $useSsl ), new \Geocoder\Provider\ArcGISOnline( $adapter, $sourceCountry, $useSsl ), ]); $geocoder->registerProvider( new \Geocoder\...
geocoder = OfflineGeocoder . new results = geocoder . search ( 51.5214588 , - 0.1729636 ) p results 上面的代码会输出这个: { :lat => 51.51116 , :lon => - 0.18426 , :name => "Bayswater" , :admin1 =>...
在描述中提到,Geocoder提供了抽象层来处理地理编码操作,这意味着它将复杂的地理信息转换过程进行了封装,使得开发者可以更方便地在应用程序中集成这些功能。 Geocoder库主要由两个核心组件构成:HttpAdapter和...
This book is for anyone interested in creating applications for the Android mobile phone platform. It includes information that will be valuable whether you're an experienced mobile developer or ...
楼主实战,根据自身需求加在对应位置即可————————————————强调!强调!强调!,里面代码功能只包含通过获取经纬度坐标查找出对应的地址信息(地址信息=省+市+区+乡镇+具体信息(道路等等);...