ورود

View Full Version : تقسیم شهر تهران به اشکال مختلف با گوگل مپ



sara.nikzadeh
شنبه 19 اردیبهشت 1394, 18:37 عصر
با سلام خدمت همه دوستان و خسته نباشید
کسی تا حالا روی نقشه های گوگل کار کرده؟؟؟
من میخوام نقشه تهران رو به چند قسمت تقسیم کنم(به اشکال گوناگون. مثلا مثلث یا ذورنقه یا هر شکل دیگه) و موقعیت کاربر رو بگیرم و روی نقشه نمایش بدم. حالا کاربر توی هر قسمتی بود که از قبل تقسیم بندی کرده بودم یه پیغام بده
آیا با گوگل مپ میشه همچین کاری کرد یا باید یه نقشه آفلاین بسازم؟؟؟
لطفا کمکم کنید چون خیلی بهش احتیاچ دارم :قلب::قلب::قلب:

emperatorsoftware
شنبه 19 اردیبهشت 1394, 19:22 عصر
سلام منم به این سوال نیاز دارم لطفا دوستان نظر بدن
ممنون:قلب::قلب::قلب:

golbafan
شنبه 19 اردیبهشت 1394, 21:34 عصر
بله میشه

شما با استفاده از مختصات lat & long مختصات شخص رو بدست بیارید و بر اساس یک تقسیم بندی مثلا بر حسب کیلومتر، مکان رو جذول بندی کنید

sara.nikzadeh
شنبه 19 اردیبهشت 1394, 22:50 عصر
بله میشه

شما با استفاده از مختصات lat & long مختصات شخص رو بدست بیارید و بر اساس یک تقسیم بندی مثلا بر حسب کیلومتر، مکان رو جذول بندی کنید
دوست من منظورم رو درست بیان نکردم فکر کنم. من میخام که نقشه تهران تقسیم بندی کنم نه بر اساس کیلومتر یا امثال این. میخوام تقسیم بندی رو به صورت شخصی و دلخواه انجام بدم.
بذارین این مثال رو بزنم که متوجه منظورم بشین. شما مناطق آموزش . پرورش تهران رو در نظر بگیرین. هر منطقه اش یه محدوده داره که من میخوام مثلا منطقه یکش رو توی گوگل مپ محدوده اش رو مشخص کنم
امیدوارم منظورم رو رسانده باشم
حالا با این توصیف ها میشه تو گوگل مپ این کار رو انجام داد؟؟

keyhan.taktaz
شنبه 19 اردیبهشت 1394, 23:02 عصر
باید از polygon استفاده کنید!

sara.nikzadeh
شنبه 19 اردیبهشت 1394, 23:45 عصر
باید از polygon استفاده کنید!

میشه بیشتر در موردش توضیح بدین دوست عزیز؟

Nevercom
یک شنبه 20 اردیبهشت 1394, 01:14 صبح
این رو ببینید: http://stackoverflow.com/questions/10792349/drawing-shapes-in-android-mapview-independent-of-the-zoom-level

_sonya_
یک شنبه 20 اردیبهشت 1394, 13:07 عصر
بله اینکار با استفاده از شی Polygon در کتابخانه نقشه های گوگل امکانپذیره. کتاب رابطهای برنامه نویسی نقشه های گوگل توسط انتشارات ناقوس منتشر شده و در مورد انجام دادن یه همچین کاراییه.

sara.nikzadeh
یک شنبه 20 اردیبهشت 1394, 13:23 عصر
ممنون از لطف همه دوستان. کارم به نتیجه رسید، همینجا بیان میکنم تا آرشیو بشه

sara.nikzadeh
یک شنبه 20 اردیبهشت 1394, 13:33 عصر
بله اینکار با استفاده از شی Polygon در کتابخانه نقشه های گوگل امکانپذیره. کتاب رابطهای برنامه نویسی نقشه های گوگل توسط انتشارات ناقوس منتشر شده و در مورد انجام دادن یه همچین کاراییه.
ببخشید دوست من، این کتاب رو از کجا میتونم تهیه کنم؟

sara.nikzadeh
سه شنبه 22 اردیبهشت 1394, 14:25 عصر
با سلام دوباره
من پس از کلی سرچ به نتیجه مطلوبی نرسیدم:گریه::گریه::گریه::گری :
کسی هست یه tutorial بهم معرفی کنه که بتونم همانند شکل زیر، یه سری محیط داخلش در بیارم
خواهشا جواب بدین چون خیلی محتاجم بهش:گریه::گریه::گریه::ناراحت: :ناراحت::ناراحت:

131159

djtrex
سه شنبه 22 اردیبهشت 1394, 17:56 عصر
با سلام دوباره
من پس از کلی سرچ به نتیجه مطلوبی نرسیدم:گریه::گریه::گریه::گری :
کسی هست یه tutorial بهم معرفی کنه که بتونم همانند شکل زیر، یه سری محیط داخلش در بیارم
خواهشا جواب بدین چون خیلی محتاجم بهش:گریه::گریه::گریه::ناراحت: :ناراحت::ناراحت:

131159




برای اینکار کافیه یه polygon بسازید و به نقشه تون اضافه کنید:

اگه از Google Maps Api استفاده میکنید:


private GoogleMap mMap;


//...




List<LatLng> points = new ArrayList<LatLng>();


//add your points:


points.add(new LatLng(lat1, lng1));
points.add(new LatLng(lat2, lng2));
points.add(new LatLng(lat3, lng3));
points.add(new LatLng(lat4, lng4));
points.add(new LatLng(lat1, lng1));


// draw polygon:


PolygonOptions polygonOptions = new PolygonOptions();


polygonOptions.addAll(points);
polygonOptions.fillColor(Color.argb(128,0,185,220) );
polygonOptions.strokeColor(Color.argb(256,0,185,22 0));
mMap.addPolygon(polygonOptions);


اطلاعات بیشتر:
https://developers.google.com/maps/documentation/android/shapes#polygons

-------
اگه از Nutiteq SDK استفاده میکنید:


private MapView mapView;
private GeometryLayer polygonLayer;


//...


// create layer for your polygon
polygonLayer = new GeometryLayer(mapView.getLayers().getBaseProjectio n()));


// ...


private MapPos convertFromLatLong(LatLng latlng){
return mapView.getLayers().getBaseLayer().getProjection() .fromWgs84(latlng.longitude,latlng.latitude);
}


// ...


List<MapPos> mapPosList = new ArrayList<MapPos>();


mapPosList.add(convertFromLatLong(new LatLng(lat1, lng1)));
mapPosList.add(convertFromLatLong(new LatLng(lat2, lng2)));
mapPosList.add(convertFromLatLong(new LatLng(lat3, lng3)));
mapPosList.add(convertFromLatLong(new LatLng(lat4, lng4)));
mapPosList.add(convertFromLatLong(new LatLng(lat1, lng1)));






LineStyle linestyle = LineStyle.builder().setWidth(0.9f).setColor(Color. argb(256,0,185,220)).build();


PolygonStyle polygonStyle = PolygonStyle.builder()
.setColor(Color.argb(128,0,185,220))
.setLineStyle(linestyle)
.build();


Polygon pg = new Polygon(posList,null, polygonStyle, null);


polygonLayer.add(pg);

اطلاعات بیشتر:
https://github.com/nutiteq/hellomap3d/wiki/Vectorobjects


----------------
اگه از Mapbox SDK استفاده میکنید:
https://www.mapbox.com/mapbox-android-sdk/#overlays

sara.nikzadeh
سه شنبه 22 اردیبهشت 1394, 18:32 عصر
برای اینکار کافیه یه polygon بسازید و به نقشه تون اضافه کنید:

اگه از Google Maps Api استفاده میکنید:


private GoogleMap mMap;


//...




List<LatLng> points = new ArrayList<LatLng>();


//add your points:


points.add(new LatLng(lat1, lng1));
points.add(new LatLng(lat2, lng2));
points.add(new LatLng(lat3, lng3));
points.add(new LatLng(lat4, lng4));
points.add(new LatLng(lat1, lng1));


// draw polygon:


PolygonOptions polygonOptions = new PolygonOptions();


polygonOptions.addAll(points);
polygonOptions.fillColor(Color.argb(128,0,185,220) );
polygonOptions.strokeColor(Color.argb(256,0,185,22 0));
mMap.addPolygon(polygonOptions);


اطلاعات بیشتر:
https://developers.google.com/maps/documentation/android/shapes#polygons

-------
اگه از Nutiteq SDK استفاده میکنید:


private MapView mapView;
private GeometryLayer polygonLayer;


//...


// create layer for your polygon
polygonLayer = new GeometryLayer(mapView.getLayers().getBaseProjectio n()));


// ...


private MapPos convertFromLatLong(LatLng latlng){
return mapView.getLayers().getBaseLayer().getProjection() .fromWgs84(latlng.longitude,latlng.latitude);
}


// ...


List<MapPos> mapPosList = new ArrayList<MapPos>();


mapPosList.add(convertFromLatLong(new LatLng(lat1, lng1)));
mapPosList.add(convertFromLatLong(new LatLng(lat2, lng2)));
mapPosList.add(convertFromLatLong(new LatLng(lat3, lng3)));
mapPosList.add(convertFromLatLong(new LatLng(lat4, lng4)));
mapPosList.add(convertFromLatLong(new LatLng(lat1, lng1)));






LineStyle linestyle = LineStyle.builder().setWidth(0.9f).setColor(Color. argb(256,0,185,220)).build();


PolygonStyle polygonStyle = PolygonStyle.builder()
.setColor(Color.argb(128,0,185,220))
.setLineStyle(linestyle)
.build();


Polygon pg = new Polygon(posList,null, polygonStyle, null);


polygonLayer.add(pg);

اطلاعات بیشتر:
https://github.com/nutiteq/hellomap3d/wiki/Vectorobjects


----------------
اگه از Mapbox SDK استفاده میکنید:
https://www.mapbox.com/mapbox-android-sdk/#overlays
دوست من ممنون از راهنمایی هاتون. من از google map api استفتاده می کنم. کدهای java و xml رو براتون میذارم تا نظر بدین که مشکلم کجاست، آخه برنامه کرش میکنه:اشتباه::اشتباه:
log cat هم میذارم

کد اکتیویتی



public class MainActivity extends FragmentActivity
{

private static final int GPS_ERRORDIALOG_REQUEST = 9001;
GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

if (servicesOK())
{
setContentView(R.layout.activity_map);

List<LatLng> points = new ArrayList<LatLng>();


//add your points:


points.add(new LatLng(32.610253, 51.626202));
points.add(new LatLng(32.610271, 51.617437));
points.add(new LatLng(32.606972, 51.617469));
points.add(new LatLng(32.606692, 51.617791));
points.add(new LatLng(32.606629, 51.626181));


// draw polygon:


PolygonOptions polygonOptions = new PolygonOptions();


polygonOptions.addAll(points);
polygonOptions.fillColor(Color.argb(128,0,185,220) );
polygonOptions.strokeColor(Color.argb(256,0,185,22 0));
mMap.addPolygon(polygonOptions);

}
else {
setContentView(R.layout.activity_main);
}

}

public boolean servicesOK() {
int isAvailable = GooglePlayServicesUtil.isGooglePlayServicesAvailab le(this);

if (isAvailable == ConnectionResult.SUCCESS) {
return true;
}
else if (GooglePlayServicesUtil.isUserRecoverableError(isA vailable)) {
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(isAvailable, this, GPS_ERRORDIALOG_REQUEST);
dialog.show();
}
else {
Toast.makeText(this, "Can't connect to Google Play services", Toast.LENGTH_SHORT).show();
}
return false;
}

}



کد xml



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="fill_parent" />

</LinearLayout>



logCat



05-12 19:16:52.767: E/AndroidRuntime(1242): FATAL EXCEPTION: main
05-12 19:16:52.767: E/AndroidRuntime(1242): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testmap/com.example.testmap.MainActivity}: java.lang.NullPointerException
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2355)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2391)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.ActivityThread.access$600(ActivityThre ad.java:151)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1335)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.os.Handler.dispatchMessage(Handler.java:99 )
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.os.Looper.loop(Looper.java:155)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.ActivityThread.main(ActivityThread.jav a:5511)
05-12 19:16:52.767: E/AndroidRuntime(1242): at java.lang.reflect.Method.invokeNative(Native Method)
05-12 19:16:52.767: E/AndroidRuntime(1242): at java.lang.reflect.Method.invoke(Method.java:511)
05-12 19:16:52.767: E/AndroidRuntime(1242): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:1029)
05-12 19:16:52.767: E/AndroidRuntime(1242): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:796)
05-12 19:16:52.767: E/AndroidRuntime(1242): at dalvik.system.NativeStart.main(Native Method)
05-12 19:16:52.767: E/AndroidRuntime(1242): Caused by: java.lang.NullPointerException
05-12 19:16:52.767: E/AndroidRuntime(1242): at com.example.testmap.MainActivity.onCreate(MainActi vity.java:70)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.Activity.performCreate(Activity.java:5 066)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1101)
05-12 19:16:52.767: E/AndroidRuntime(1242): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2311)
05-12 19:16:52.767: E/AndroidRuntime(1242): ... 11 more

djtrex
چهارشنبه 23 اردیبهشت 1394, 10:37 صبح
private GoogleMap mMap;

اینو initialize یا مقدار دهی اولیه نکردید برای همین null pointer exception داده.

اینو بعد از


setContentView(R.layout.activity_map);


بگذارید:


MapFragment mapFragment = (MapFragment) fragmentManager.findFragmentById(R.id.map);
mMap = mapFragment.getMap();


میتونید به صورت async هم کار کنید پرفرمنس بهتری داره - اطلاعات بییشتر:

https://developers.google.com/maps/documentation/android/map

sara.nikzadeh
چهارشنبه 23 اردیبهشت 1394, 11:09 صبح
private GoogleMap mMap;

اینو initialize یا مقدار دهی اولیه نکردید برای همین null pointer exception داده.

اینو بعد از


setContentView(R.layout.activity_map);


بگذارید:


MapFragment mapFragment = (MapFragment) fragmentManager.findFragmentById(R.id.map);
mMap = mapFragment.getMap();


میتونید به صورت async هم کار کنید پرفرمنس بهتری داره - اطلاعات بییشتر:

https://developers.google.com/maps/documentation/android/map

دوست من ممنون واقعا نمیدونم با چه زبانی ازتوم تشکر کنم واسه راهنمایی هاتون.
الان که این کدا رو اضافه کردم، به fragmentManager ارور میده:اشتباه::اشتباه::اشتباه:

djtrex
چهارشنبه 23 اردیبهشت 1394, 12:31 عصر
دوست من ممنون واقعا نمیدونم با چه زبانی ازتوم تشکر کنم واسه راهنمایی هاتون.
الان که این کدا رو اضافه کردم، به fragmentManager ارور میده:اشتباه::اشتباه::اشتباه:

خواهش.
شما دارید از support fragment استفاده میکنید.
اگر حداقل نسخه اندرویدتون ۲.۳ یا پایین تر نیست میتونید از همون fragment استفاده کنید در غیر این صورت:


mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id. map))
.getMap();

sara.nikzadeh
چهارشنبه 23 اردیبهشت 1394, 14:25 عصر
خواهش.
شما دارید از support fragment استفاده میکنید.
اگر حداقل نسخه اندرویدتون ۲.۳ یا پایین تر نیست میتونید از همون fragment استفاده کنید در غیر این صورت:


mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id. map))
.getMap();


و باز هم ارور java.lang.NullPointerException:گریه::گریه: :گریه::گریه:

djtrex
چهارشنبه 23 اردیبهشت 1394, 14:38 عصر
و باز هم ارور java.lang.NullPointerException:گریه::گریه: :گریه::گریه:

کدتونو کامل بذارید + لاگ کت

sara.nikzadeh
چهارشنبه 23 اردیبهشت 1394, 15:22 عصر
main activity :

package com.example.testmap;


import java.util.ArrayList;

import android.app.Dialog;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUt il;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.PolygonOptions;



public class MainActivity extends FragmentActivity
{

private static final int GPS_ERRORDIALOG_REQUEST = 9001;
private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

if (servicesOK())
{

ArrayList<LatLng> points = new ArrayList<LatLng>();

//List<HashMap<Double, Double>> points = new ArrayList<HashMap<Double, Double>>();
//add your points:
points.add(new LatLng(32.610253, 51.626202));
points.add(new LatLng(32.610271, 51.617437));
points.add(new LatLng(32.606972, 51.617469));
points.add(new LatLng(32.606692, 51.617791));
points.add(new LatLng(32.606629, 51.626181));

// draw polygon:
PolygonOptions polygonOptions = new PolygonOptions();
polygonOptions.addAll(points);
polygonOptions.fillColor(Color.argb(128,0,185,220) );
polygonOptions.strokeColor(Color.argb(256,0,185,22 0));
mMap.addPolygon(polygonOptions);


setContentView(R.layout.activity_map);

mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id. map))
.getMap();

}
else {
setContentView(R.layout.activity_main);
}

}

public boolean servicesOK() {
int isAvailable = GooglePlayServicesUtil.isGooglePlayServicesAvailab le(this);

if (isAvailable == ConnectionResult.SUCCESS) {
return true;
}
else if (GooglePlayServicesUtil.isUserRecoverableError(isA vailable)) {
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(isAvailable, this, GPS_ERRORDIALOG_REQUEST);
dialog.show();
}
else {
Toast.makeText(this, "Can't connect to Google Play services", Toast.LENGTH_SHORT).show();
}
return false;
}

}

layout :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="fill_parent" />

</LinearLayout>

LogCat :

05-13 16:04:09.581: E/Trace(10319): error opening trace file: No such file or directory (2)
05-13 16:04:09.771: W/dalvikvm(10319): threadid=1: thread exiting with uncaught exception (group=0x418bb468)
05-13 16:04:09.791: E/AndroidRuntime(10319): FATAL EXCEPTION: main
05-13 16:04:09.791: E/AndroidRuntime(10319): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testmap/com.example.testmap.MainActivity}: java.lang.NullPointerException
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2355)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2391)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.ActivityThread.access$600(ActivityThre ad.java:151)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1335)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.os.Handler.dispatchMessage(Handler.java:99 )
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.os.Looper.loop(Looper.java:155)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.ActivityThread.main(ActivityThread.jav a:5511)
05-13 16:04:09.791: E/AndroidRuntime(10319): at java.lang.reflect.Method.invokeNative(Native Method)
05-13 16:04:09.791: E/AndroidRuntime(10319): at java.lang.reflect.Method.invoke(Method.java:511)
05-13 16:04:09.791: E/AndroidRuntime(10319): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:1029)
05-13 16:04:09.791: E/AndroidRuntime(10319): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:796)
05-13 16:04:09.791: E/AndroidRuntime(10319): at dalvik.system.NativeStart.main(Native Method)
05-13 16:04:09.791: E/AndroidRuntime(10319): Caused by: java.lang.NullPointerException
05-13 16:04:09.791: E/AndroidRuntime(10319): at com.example.testmap.MainActivity.onCreate(MainActi vity.java:51)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.Activity.performCreate(Activity.java:5 066)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1101)
05-13 16:04:09.791: E/AndroidRuntime(10319): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2311)
05-13 16:04:09.791: E/AndroidRuntime(10319): ... 11 more

atpf67
چهارشنبه 23 اردیبهشت 1394, 15:35 عصر
دوست بزرگوار توی MainActivity خط کد 51 رو ببر زیر خط کد شماره ی 56-57 بنویسش.

یعنی اینطوری:


mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id. map)).getMap();
mMap.addPolygon(polygonOptions);

sara.nikzadeh
چهارشنبه 23 اردیبهشت 1394, 16:32 عصر
با تشکر از همه دوستان، با راهنمایی های به جای شما دوستان، مشکلم حل شد. واقعا نمیدونم چطوری از همه شما دوستان تشکر و قدر دانی کنم. خیلی ممنون واقعا

فقط دو تا سوال کوچک دیگه در همین رابطه :
اول : میخوام روی نقشه، تعدادی دیگه مثل همین درست کنم. راهکارش چیه؟
دوم : میشه بهشون ID داد که بتونم ازشون جداگانه استفاده کنم. مثلا تا موقعیت کاربر رو میگیرم بتونم مقایسه کنم که داخل کدوم از این polygon ها هست؟
بازهم از همه دوستان که وقت گذاشتن، کمال تشکر دارم

djtrex
چهارشنبه 23 اردیبهشت 1394, 18:15 عصر
با تشکر از همه دوستان، با راهنمایی های به جای شما دوستان، مشکلم حل شد. واقعا نمیدونم چطوری از همه شما دوستان تشکر و قدر دانی کنم. خیلی ممنون واقعا

فقط دو تا سوال کوچک دیگه در همین رابطه :
اول : میخوام روی نقشه، تعدادی دیگه مثل همین درست کنم. راهکارش چیه؟
دوم : میشه بهشون ID داد که بتونم ازشون جداگانه استفاده کنم. مثلا تا موقعیت کاربر رو میگیرم بتونم مقایسه کنم که داخل کدوم از این polygon ها هست؟
بازهم از همه دوستان که وقت گذاشتن، کمال تشکر دارم

برای سوال دومتون این کار محسبات gis داره خود google map نداره این امکانات رو ولی میتونید از android-map-utils استفاده کنید:
http://googlemaps.github.io/android-maps-utils/

متد containsLocation از کلاس PolyUtil
http://googlemaps.github.io/android-maps-utils/javadoc/com/google/maps/android/PolyUtil.html#containsLocation(LatLng, java.util.List, boolean)


//LatLng point,
//List<LatLng> polygon
//boolean geodesic


if(PolyUtil.containsLocation(point, polygon, geodesic)){
//within polygon
}


میتونید خود کلاس رو هم کپی کنید تو پروژتون استفاده کنید:
https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/PolyUtil.java


برای سوال اول هم میتونید چند بار همون روند بالا رو تکرار کنید در آخر Polygon رو به نقشه اضافه کنید.

sara.nikzadeh
چهارشنبه 23 اردیبهشت 1394, 18:37 عصر
برای سوال دومتون این کار محسبات gis داره خود google map نداره این امکانات رو ولی میتونید از android-map-utils استفاده کنید:
http://googlemaps.github.io/android-maps-utils/

متد containsLocation از کلاس PolyUtil
http://googlemaps.github.io/android-maps-utils/javadoc/com/google/maps/android/PolyUtil.html#containsLocation(LatLng, java.util.List, boolean)


//LatLng point,
//List<LatLng> polygon
//boolean geodesic


if(PolyUtil.containsLocation(point, polygon, geodesic)){
//within polygon
}


میتونید خود کلاس رو هم کپی کنید تو پروژتون استفاده کنید:
https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/PolyUtil.java


برای سوال اول هم میتونید چند بار همون روند بالا رو تکرار کنید در آخر Polygon رو به نقشه اضافه کنید.

ممنون دوست عزیز