close
تبلیغات در اینترنت
Google maps,maps,نقشه گوگل,کد استفاده از نقشه گوگل,استفاده از نقشه گوگ
صفحه اصلی پرشین استک

{ پرشین استک }

به دنیای برنامه نویسی خوش آمدید
|


پرشین استک تنها یک سایت نیست بلکه یک پروژه همگانی می باشد


تعداد مطالب :
142


تعداد توسعه دهندگان :
11


تاریخ امروز :
جمعه 29 تیر 1397

به کانال تلگرام ما بپیوندید


×

لیست سوالات من

افزودن

چگونه نام شهر را از مختصات طول و عرض جغرافیایی در Google Maps بدست آوریم؟

چگونه می توانم نام شهر را در Google Maps بدست آورم اگر مختصات طول (longitude) و عرض جغرافیایی (latitude) یک شهر یا منطقه را داشته باشم؟ من سعی کردم از عرض جغرافیایی و طول جغرافیایی استفاده کنم و کشور را بشناسم اما نمی دانم چگونه نام شهر را بدست آورم ؟

 

پاسخ 1 :

شما می توانید از یک شی Geocoder، متد getFromLocation(double, double, int) را فراخوانی کنید . این یک لیست از اشیا آدرس (Address) که دارای متد ()getLocality هستند ، بر می گرداند .

 

Geocoder gcd = new Geocoder(context,Locale.getDefault());
List<Address> addresses = gcd.getFromLocation(lat, lng,1);
if (addresses.size() > 0)
{
System.out.println(addresses.get(0).getLocality());
}
else
{
// do your staff
}

 

 

پاسخ 2 :

شما می توانید از کد زیر برای دریافت شهر و سایر جزئیات در مورد طول و عرض جغرافیایی استفاده کنید :

 

public class getReverseGeoCoding {
private StringAddress1 = "",Address2 = "",City = "",State = "",Country = "",County = "", PIN = "";

public void getAddress(){
Address1 = "";
Address2 = "";
City = "";
State = "";
Country= "";
County = "";
PIN = "";

try{

JSONObject jsonObj = parser_Json.getJSONfromURL("http://maps.googleapis.com/maps/api/geocode/json?latlng="+Global.curLatitude + ","
+Global.curLongitude +"&sensor=true");
StringStatus = jsonObj.getString("status");
if (Status.equalsIgnoreCase("OK")){
JSONArrayResults = jsonObj.getJSONArray("results");
JSONObject zero = Results.getJSONObject(0);
JSONArray address_components = zero.getJSONArray("address_components");

for (int i = 0; i < address_components.length(); i++){
JSONObject zero2 = address_components.getJSONObject(i);
String long_name = zero2.getString("long_name");
JSONArray mtypes = zero2.getJSONArray("types");
StringType = mtypes.getString(0);

if (TextUtils.isEmpty(long_name) == false || !long_name.equals(null) || long_name.length() > 0 || long_name != ""){
if (Type.equalsIgnoreCase("street_number")){
Address1 = long_name +" ";
}else if (Type.equalsIgnoreCase("route")){
Address1 = Address1 + long_name;
}else if (Type.equalsIgnoreCase("sublocality")){
Address2 = long_name;
}else if(Type.equalsIgnoreCase("locality")){
// Address2 = Address2 + long_name + ", ";
City = long_name;
}else if(Type.equalsIgnoreCase("administrative_area_level_2")){
County = long_name;
}else if(Type.equalsIgnoreCase("administrative_area_level_1")){
State = long_name;
}else if(Type.equalsIgnoreCase("country")){
Country = long_name;
}else if(Type.equalsIgnoreCase("postal_code")){
PIN = long_name;
}
}

// JSONArray mtypes = zero2.getJSONArray("types");
// String Type = mtypes.getString(0);
// Log.e(Type,long_name);
}
}

}catch(Exception e){
e.printStackTrace();
}

}


public String getAddress1(){
return Address1;

}

public String getAddress2(){
return Address2;

}

public String getCity(){
return City;

}

public String getState(){
return State;

}

public String getCountry(){
return Country;

}

public String getCounty(){
return County;

}

public String getPIN(){
return PIN;

}

}

 

 

کلاس JSON PARSER :

 

public class parser_Json {
public static JSONObject getJSONfromURL(String url){

// initialize
InputStreamis=null;
String result = "";
JSONObject jObject = null;

// http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();

}catch (Exception e){
Log.e("log_tag","Error in http connection " + e.toString());
}

// convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine())!= null){
sb.append(line + "n");
}
is.close();
result = sb.toString();
}catch (Exception e){
Log.e("log_tag","Error converting result " + e.toString());
}

// try parse the string to a JSON object
try{
jObject = new JSONObject(result);
}catch (JSONException e){
Log.e("log_tag","Error parsing data " + e.toString());
}

return jObject;
}

}

 

 

پاسخ 3 :

کد زیر را امتحان کنید :

 

List<Address> list = geoCoder.getFromLocation(location
.getLatitude(), location.getLongitude(),1);
if (list != null & list.size() > 0){
Address address = list.get(0);
result = address.getLocality();
return result;

 

پاسخ 4 :

کد زیر را امتحان کنید :

 

CityAsyncTask cst = new CityAsyncTask(HomeScreenUserLocation.this,
latitude, longitude);
cst.execute();

String lo = null;
try{
lo = cst.get().toString();
}catch (InterruptedException e){
// TODO Auto-generated catch block
e.printStackTrace();
}catch (ExecutionException e){
// TODO Auto-generated catch block
e.printStackTrace();
}

 

و AsyncTask :

 

public class CityAsyncTask extends AsyncTask<String,String,String>{
Activity act;
double latitude;
double longitude;

public CityAsyncTask(Activity act,double latitude,double longitude){
// TODO Auto-generated constructor stub
this.act = act;
this.latitude = latitude;
this.longitude = longitude;
}

@Override
protected String doInBackground(String...params){
String result = "";
Geocoder geocoder = new Geocoder(act,Locale.getDefault());
try{
List<Address> addresses = geocoder.getFromLocation(latitude,
longitude,1);
Log.e("Addresses","-->" + addresses);
result = addresses.get(0).toString();
}catch (IOException e){
e.printStackTrace();
}
return result;
}

@Override
protected void onPostExecute(String result){
// TODO Auto-generated method stub
super.onPostExecute(result);

}
}

 

 

پاسخ 5 :

کد زیر را امتحان کنید :

 

Geocoder geocoder = new Geocoder(this,Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(latitude, longitude,1);
String cityName = addresses.get(0).getAddressLine(0);
String stateName = addresses.get(0).getAddressLine(1);
String countryName = addresses.get(0).getAddressLine(2);

 

پاسخ 6 :

کد زیر را امتحان کنید :

 

private class MatchingNearByLocationTask extends
AsyncTask<Void,Void,Void>
{

@Override
protected void onPreExecute(){
super.onPreExecute();
// Showing progress dialog

progressDialog = new ProgressDialog(mContext);
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);
progressDialog.show();

}

@Override
protected Void doInBackground(Void... arg0){

jsonStr = getLocationInfo(Latitude,Longitude).toString();
if (jsonStr != null){
Log.i("location--??", jsonStr);

JSONObject jsonObj;
try{
jsonObj = new JSONObject(jsonStr);

StringStatus = jsonObj.getString("status");
if (Status.equalsIgnoreCase("OK")){
JSONArrayResults = jsonObj.getJSONArray("results");
JSONObject zero = Results.getJSONObject(0);
JSONArray address_components = zero
.getJSONArray("address_components");

for (int i = 0; i < address_components.length(); i++){
JSONObject zero2 = address_components
.getJSONObject(i);
String long_name = zero2.getString("long_name");
JSONArray mtypes = zero2.getJSONArray("types");
StringType = mtypes.getString(0);
if (Type.equalsIgnoreCase("administrative_area_level_2")){
// Address2 = Address2 + long_name + ", ";
StringCity = long_name;
Log.d(" CityName --->",City+"");
}
}
}

}

catch (JSONException e){

e.printStackTrace();
}

}

return null;
}


@Override
protected void onPostExecute(Void result){
super.onPostExecute(result);
// Dismiss the progress dialog
if (progressDialog.isShowing()){
progressDialog.dismiss();
}

}

@Override
protected void onCancelled(){

super.onCancelled();
progressDialog.dismiss();

}

}


private JSONObject getLocationInfo(double lat,double lng){

HttpGet httpGet = new HttpGet(
"http://maps.googleapis.com/maps/api/geocode/json?latlng="
+ lat +","+ lng +"&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){
e.printStackTrace();
}

return jsonObject;
}

 

پاسخ 7 :

شما می توانید از کد زیر استفاده کنید اگر یک لیست دارید :

 

Address address = list.get(0);
String cityname = address.getLocality();

 

پاسخ 8 :

می توانید از کد زیر استفاده کنید :

 

 com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(data);
if ("OK".equals(jsonObject.getString("status"))){
String formatted_address;
JSONArray results = jsonObject.getJSONArray("results");
if (results != null && results.size() > 0){
com.alibaba.fastjson.JSONObjectobject = results.getJSONObject(0);
String addressComponents = object.getString("address_components");
formatted_address = object.getString("formatted_address");
Log.e("amaya","formatted_address=" + formatted_address + "--url=" + url);
if (findCity){
boolean finded = false;
JSONArray ac = JSONArray.parseArray(addressComponents);
if (ac != null && ac.size() > 0){
for (int i = 0;i < ac.size() ; i++){
com.alibaba.fastjson.JSONObject jo = ac.getJSONObject(i);
JSONArray types = jo.getJSONArray("types");
if (types != null && types.size() > 0){
for (int j = 0;j < ac.size(); j++){
String string = types.getString(i);
if ("administrative_area_level_1".equals(string)){
finded = true;
break;
}
}
}
if (finded) break;
}
}
Log.e("amaya","city=" + formatted_address);
}else{
Log.e("amaya","poiName=" + hotspotPoi.getPoi_name() + "--"+hotspotPoi);
}
if (hotspotPoi != null) hotspotPoi.setPoi_name(formatted_address);
EventBus.getDefault().post(newAmayaEvent.GeoEvent(hotspotPoi));
}
}

 

این یک روش برای تجزیه اطلاعات بازخورد گوگل است .

 

پاسخ 9 :

در اینجا من از سرویس http گوگل استفاده کرده ام تا کل اطلاعات مکان را براساس طول و عرض جغرافیایی دریافت کنم . شما باید طول و عرض جغرافیایی را در URL و API KEY خود را ارسال کنید (مثل : latlng=21.1497409, 79.08747970000002 & key=YOUR API KEY ) . در اینجا getservice در کلاس ExampleService قرار دارد :

 

 getService(url){

return this.http.get(url).map((data: any) => data.json())

}

 

شما می توانید کد زیر را در هر جایی که می خواهید قرار دهید و فقط سرویس زیر را از کامپوننت در جایی که اطلاعات مکان را می خواهید ، فراخوانی کنید :

 

this._exampleService.getService("https://maps.googleapis.com/maps/api/geocode/json?latlng=21.1497409, 79.08747970000002&key=YOUR API KEY").subscribe(getplaceData =>{
var placeDataDest: any;
placeDataDest = getplaceData;
console.log("i got place id yeee "+ placeDataDest['results'][0]['place_id']);
console.log("i got place details yeee "+ placeDataDest['results']);
});

 

صفحه اصلی

37

22 / 05 / 1396

PERSIAN STACK


چرا گاهی اوقات API موقعیت مکانی سرویس گوگل پلی ، موقعیت مکانی اشتباهی را برمی گرداند ؟

ادامه مطلب

613

چگونه نرم افزار ضبط صدای اندرویدی بسازیم ؟

ادامه مطلب

549

چرا TextView کلمات را با حروف می شکند ؟

ادامه مطلب

497

دانلود تمامی API های اندروید

ادامه مطلب

435

قسمت شانزدهم - جدول ها در HTML

ادامه مطلب

421

چرا وبسایت تجارت الکترونیک Magento 2 در Webview اندروید کار نمی کند ؟

ادامه مطلب

363

دانلود پروژه نمایش جستجوی کتاب برای اندروید

ادامه مطلب

347

چگونه Google API برای سطح API 25 را پیدا کنیم ؟

ادامه مطلب

345

دانلود سورس کد بازی اندرویدی Klooni 1010! + فایل APK

ادامه مطلب

259

آیا راهی برای یافتن تغیرات ماه در نمای تقویم اندروید (calendar view) وجود دارد ؟

ادامه مطلب

243

در تکمیل خودکار اندروید ، دلیل dispatchProvideAutofillStructure() not laid out چیست ؟

ادامه مطلب

233

چرا زمانی که با استفاده از cordova در اندروید 7.0 ، اس ام اس ارسال می کنیم ، با اثتثنای (Exception) امنیتی مواج

ادامه مطلب

227

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

211

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

195

دانلود سورس کد اپلیکیشن هواشناسی برای اندروید + فایل APK

ادامه مطلب

181

چگونه ارور com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders را در اندروید رفع کنیم ؟

ادامه مطلب

173

دانلود اسکریپت جاوای PS-CH# - ایجاد ورودی متنی پیشرفته

ادامه مطلب

121

دانلود کتابخانه Retrofit برای اندروید + پروژه

ادامه مطلب

119

دانلود سورس کد تمامی نسخه های تلگرام + فایل های نصبی

ادامه مطلب

113

دانلود کتابخانه GSON برای اندروید + پروژه

ادامه مطلب

111

دانلود اسکریپت جاوای PS-CH# - ایجاد ورودی متنی پیشرفته

ادامه مطلب

یکشنبه 05 آذر 1396

قسمت هفدهم - لیست ها در HTML

ادامه مطلب

یکشنبه 21 آبان 1396

چگونه می توان با استفاده از CSS ، رنگ placeholder را تغییر داد ؟

ادامه مطلب

یکشنبه 21 آبان 1396

قسمت شانزدهم - جدول ها در HTML

ادامه مطلب

شنبه 20 آبان 1396

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

شنبه 20 آبان 1396

قسمت پانزدهم - عکس ها در HTML

ادامه مطلب

جمعه 19 آبان 1396

قسمت چهاردهم - لینک ها در HTML

ادامه مطلب

یکشنبه 14 آبان 1396

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

یکشنبه 14 آبان 1396

قسمت سیزدهم - CSS در HTML

ادامه مطلب

شنبه 13 آبان 1396

قسمت بیست و پنجم (قسمت آخر) - آموزش ساخت بازی حدس

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و چهارم - آموزش نحوه ی پردازش فایل ها در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و سوم - برنامه تکمیلی جاوا (6)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و دوم - معرفی آرایه ها در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و یکم - برنامه تکمیلی جاوا (5)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیستم - معرفی مفهوم وراثت در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت نوزدهم - برنامه تکمیلی جاوا (4)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت هجدهم - معرفی عبارات کنترلی در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت هفدهم - برنامه تکمیلی جاوا (2-3)

ادامه مطلب

چهارشنبه 10 آبان 1396

چگونه در برنامه نویسی اندروید ، یک ListView با متن و عکس بسازیم ؟

ادامه مطلب

سه شنبه 09 آبان 1396

چگونه در برنامه نویسی اندروید از فونت شخصی خود استفاده کنیم ؟

ادامه مطلب

سه شنبه 09 آبان 1396

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

چگونه در برنامه نویسی اندروید ، یک ListView با متن و عکس بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید از فونت شخصی خود استفاده کنیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید می توان آیدی موبایل را بدست آورد ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید برنامه تماس بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید یک منو ساده بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید از برنامه اسکرین شات بگیریم ؟

ادامه مطلب

چگونه می توان در اندروید RTL یا LTR صفحه را ثابت کرد ؟

ادامه مطلب

چگونه می توان در اندروید حالت افقی (landscape) را غیر فعال کرد ؟

ادامه مطلب

آموزش استفاده از دیتابیس آماده در پروژه اندرویدی

ادامه مطلب

دانلود سورس کد تمامی نسخه های تلگرام + فایل های نصبی

ادامه مطلب

دانلود کتابخانه GSON برای اندروید + پروژه

ادامه مطلب

دانلود سورس کد اپلیکیشن آموزش زبان انگلیسی + فایل APK

ادامه مطلب

چگونه نگذاریم در آغاز اکتیویتی ، EditText فوکوس را بدست آورد ؟

ادامه مطلب

چگونه کیبورد پیش فرض اندروید (Soft Keyboard) را پنهان کرده یا ببندیم ؟

ادامه مطلب

چرا سرعت مجازی ساز اندروید کم است و چگونه می توان سرعت آنرا افزایش داد ؟

ادامه مطلب

تفاوت بین واحد های اندازه گیری "px" , "dp" , "dip" و "sp" چیست ؟

ادامه مطلب

دانلود سورس کد اپلیکیشن آهنگ سازی برای اندروید + فایل APK

ادامه مطلب

دانلود سورس کد اپلیکیشن هواشناسی برای اندروید + فایل APK

ادامه مطلب

× برای نظر گذاشتن یا پاسخ دادن به سوالات باید در سایت عضو باشید !

برای حمایت از ما روی بنر های زیر کلیک کنید .

برای سفارش تبلیغات به ما ایمیل بزنید .

ارتباط با ما