PDA

View Full Version : آموزش: نقشه آفلاین در C# با امکان زوم و جستجو.....؟؟!!



rezam44
شنبه 22 تیر 1392, 09:55 صبح
سلام دوستان خوبم....:چشمک:

بنده قصد دارم یه برنامه بنویسم که بشه بصورت آفلاین روی نقشه یه شهر (از قبل تعیین شده) جستجو کرد و قابلیت زوم هم داشته باشه.(برای استفاده در PC)

اسم و آدرس و شماره تماس افرادی که می خوایم جستجو کنیم تو یه دونه فایل اکسل نوشته شده.

توقع ما از برنامه اینه که وقتی یه مکانی رو جستجو می کنیم مثلا اسم یه محله رو دادیم... هم اون محله رو زوم کنه و بهمون بگه که چند نفر توی این محله هستن که توی لیست ما وجود دارن.



حالا از دوستان عزیزم می خوام منو راهنمایی کنن که چطوری باید شروع کنم...:لبخندساده:
آوردن نقشه و گذاشتن زوم و ...

طاعاتتون هم قبول باشه ان شاا..ّ. !:قلب:

CsharpNevisi
شنبه 22 تیر 1392, 11:05 صبح
سلام ... !!!!
راهی که من برای این کار به ذخنم میرسه اینه :::
نقشه هایی که میخوایو به صورت عکس جمع کن و کنار برنامه قرار بده ... !!!
منظورتو از این که زوم کنه نمیفهمم .... !!! اگه میخوایی به صورت انیمیشنی بره جلو من راهی به ذهنم نمیرسه .... !!!!
ولی میتونی بهش حالت انیمشنی بدی که وقتی کاربر اسمو وارد کرد پیکچرباکس بسته و با نقشه جدید باز شه ... !!!!

اسم و آدرس و شماره تماس افرادی که می خوایم جستجو کنیم تو یه دونه فایل اکسل نوشته شده.
تاحالا از اکسل تو برنامه ها استفاده نکردیم و لی اگه اطلاعاتو تو اکسس کپی کنی میتونم راهنماییت کنم .. !!!

rezam44
شنبه 22 تیر 1392, 11:11 صبح
منظورتو از این که زوم کنه نمیفهمم .... !!! اگه میخوایی به صورت انیمیشنی بره جلو من راهی به ذهنم نمیرسه .... !!!!


منظورم از زوم کردن اون مکان اینه که محدوده ای که برای اون محله هست رو توی عکس بیاره.... حالا بصورت انیمیشنی نمی خواد باشه... مهم اومدنه عکس هست...



تاحالا از اکسل تو برنامه ها استفاده نکردیم و لی اگه اطلاعاتو تو اکسس کپی کنی میتونم راهنماییت کنم .. !!!اطلاعات رو ... پیشنهاد می کنی که تو اکسس بنویسیم؟

CsharpNevisi
شنبه 22 تیر 1392, 11:14 صبح
منظورم از زوم کردن اون مکان اینه که محدوده ای که برای اون محله هست رو توی عکس بیاره.... حالا بصورت انیمیشنی نمی خواد باشه... مهم اومدنه عکس هست...
خب این که کاری نداره ... !!!

اطلاعات رو ... پیشنهاد می کنی که تو اکسس بنویسیم؟
من تاحالا از اکسل استفاده نکردم و مزیت و معایبشو نسبت به اکسس نمیدونم .... !!!
من گفتم اگه اطلاعاتو تو اکسس بنویسی میتونم راهنماییت کنم ... !!!

rezam44
شنبه 22 تیر 1392, 11:21 صبح
خب این که کاری نداره ... !!!

من تاحالا از اکسل استفاده نکردم و مزیت و معایبشو نسبت به اکسس نمیدونم .... !!!
من گفتم اگه اطلاعاتو تو اکسس بنویسی میتونم راهنماییت کنم ... !!!

ممنون میشم راهنمایی کنی

راستی امکانش هست که زوم شدن یا همون اومدن عکس رو به کوچیکتر از محله هم تغییر داد؟ مثلا آدرس داده بشه و یه قسمت مشخص از عکس اون محله بیاد؟

shahryari
شنبه 22 تیر 1392, 11:33 صبح
با سلام
برا اینکار شما باید چند فاکتور را مد نظر داشته باشید
اول اینکه هیچکدوم از کنترلها هوشمند نیست که مثلا بگید تبریز خیابان ستارخان بلافاصله رو اون قسمت فوکوس بشه .... !!!
در هنگام ثبت مشخصات باید کار کنید که در ابتدا کاربر محیطی را که میخواهید نمایش داده شود را بصورت دستی انتخاب کند برای مثال یک پنل بذارید و که خاصیت اتو اسکرول داشته باشد و کاربر هنگام انتخاب نقشه توسط اسکرول های عمودی و افقی محدوده را مششخص کند و وقتی کلید ثبت زده شده برنامه لوکیشن اون قسمتی را که در پنل نمایش داده مشود را در بانک ذخیره کند
و هنگام جستجو هم همان مقدار لوکیشن ذخیره شده در بانک به پنل نسبت داده شود تا شکل مورد نظر به نمایش دربیاید
کار کمی پیچیده است و لی در کل شدنی است

CsharpNevisi
شنبه 22 تیر 1392, 11:34 صبح
ممنون میشم راهنمایی کنی

راستی امکانش هست که زوم شدن یا همون اومدن عکس رو به کوچیکتر از محله هم تغییر داد؟ مثلا آدرس داده بشه و یه قسمت مشخص از عکس اون محله بیاد؟

ببین برای این که با حالت انیمیشنی زوم کنه یه فکر به ذهن من رسید ... !!!
میتونی با یه ترد عکسو کروپ کنی تا به محل مورد نظر برسی یا پیکچر باکسو بزرگ کنی که البته این کارا به صرف وقت و با حوصله گی نیاز داره ... !!!
البته عکست باید با کیفیت باشه که افت کیفیت شدید نداشته باشه ... !!!!

راستی امکانش هست که زوم شدن یا همون اومدن عکس رو به کوچیکتر از محله هم تغییر داد؟ مثلا آدرس داده بشه و یه قسمت مشخص از عکس اون محله بیاد؟
این بستگی به همت خودت داره .... !!!!
چون وقتی یه اسم میزنه تو باید مشخص کنی که کدوم قسمته و کجا زوم کنه ... !!!! مثلا وقتی میزنه پیروزی تو باید عکس مربوط به پیروزیو نشون بدی ... !!!
ولی میتونی از یه فورمول .. نگا کن کوچه ها با ترتیبن .... مثلا کوچه 1 روبه روش میشه 2 و ......
و پلاک ها هم همینطور .... تو میتونی مختصات تقربیشونو به دست بیاری و روش زوم کنی ... !!! مثلا کوچه ها فاصله شون 4 سانته ... وقتی تو میخوایی بری کوچه مثلا 8 باید ببینی کدوم طرف خیابونه مثلا راست ... خب راست که به دست اومد حالا از ست راست تعداد کوچه هایی که میخوایی پیمایش کنیو تقسیم بر 2 کن چون کوچه ها رو به رو همن بعدش ضرب در فاصله کن یعنی 4*(8/2)

rezam44
شنبه 22 تیر 1392, 11:40 صبح
ببین برای این که با حالت انیمیشنی زوم کنه یه فکر به ذهن من رسید ... !!!
میتونی با یه ترد عکسو کروپ کنی تا به محل مورد نظر برسی یا پیکچر باکسو بزرگ کنی که البته این کارا به صرف وقت و با حوصله گی نیاز داره ... !!!
البته عکست باید با کیفیت باشه که افت کیفیت شدید نداشته باشه ... !!!!


در مورد عکس: می خوام نقشه شهر رو اول اسکن کنم...
درضمن چطور می تونم عکس به اون بزرگی رو تو فورم جا بدم؟... یا اصلا نباید این کارو بکنم و باید بخش بخش کنم؟

CsharpNevisi
شنبه 22 تیر 1392, 11:48 صبح
در مورد عکس: می خوام نقشه شهر رو اول اسکن کنم...
درضمن چطور می تونم عکس به اون بزرگی رو تو فورم جا بدم؟... یا اصلا نباید این کارو بکنم و باید بخش بخش کنم؟

اون بستگی به خودت داره ... !!!
اگه میخوایی انیمیشنی باشه و زیبایی خودشو داشته باشه باید همه رو یه جا تو فرم قرار بدی که هر چقدرم بزرگ باشه با یه پیکچرباکس حله ... !!! (البته نوشتم الگوریتم مسیریابی تو این حالت زمابر است)
ولی اگه عکسارو بخش بخش کنی به نظر من خیلی راحت تره ... و من به شخصه این کارو پیشنهاد میکنم ... !!!!

rezam44
شنبه 22 تیر 1392, 11:55 صبح
ولی اگه عکسارو بخش بخش کنی به نظر من خیلی راحت تره ... و من به شخصه این کارو پیشنهاد میکنم ... !!!!

یعنی بعد از بخش بخش کردن تو فورم بذارم؟ بعد چطوری میتونیم کنار هم بذاریم که شکل کلی هم داشته باشیم و توی فورم هم جا بشه؟

CsharpNevisi
شنبه 22 تیر 1392, 12:08 عصر
یعنی بعد از بخش بخش کردن تو فورم بذارم؟ بعد چطوری میتونیم کنار هم بذاریم که شکل کلی هم داشته باشیم و توی فورم هم جا بشه؟

نگا کن به نظر من بیا یه عکس کلی تو فرمت بزار ... !!!!مثلا شهر A
بعد بیا بخش های همون شهرو کنار عکس اصلی بزار .. !!!
مثلا A1,A2 میشه بخش ها .... بقیه هم همینطور ... !!!!

shahryari
شنبه 22 تیر 1392, 12:11 عصر
با سلام مجدد
تصویر شما به هر اندازه که باشد میتوانید اینکار را بکنبد
یک پنل به فرمتان اضافه کنید
خاصیت اتو اسکرول را ترو کنید
یک پیکچر باکس داخل این پنل دراگ کنید
تصویر و اندازه این پیکچر باکس را به اندازه دوست دارید تنظیم کنید اما لوکیشن این پیکچرباکس باید 0;0 باشد
پنل پروپرتی بنام AutoScrollPosition دارد که دوتا نقطه ایکس و وای را میتوانید بگیرید و مقدار بدهید
کاربر هنگام انتخاب نقشه توسط اسکرول های عمودی و افقی محدوده را مششخص کند و وقتی کلید ثبت زده شده برنامه AutoScrollPosition اون قسمتی را که در پنل نمایش داده مشود را در بانک ذخیره کند
هنگام جستجو هم همان مقدار AutoScrollPosition ذخیره شده در بانک به پنل نسبت داده شود تا شکل مورد نظر به نمایش دربیاید

rezam44
شنبه 22 تیر 1392, 12:15 عصر
نگا کن به نظر من بیا یه عکس کلی تو فرمت بزار ... !!!!مثلا شهر A
بعد بیا بخش های همون شهرو کنار عکس اصلی بزار .. !!!
مثلا A1,A2 میشه بخش ها .... بقیه هم همینطور ... !!!!

منظورتون اینطوریه؟
107130

CsharpNevisi
شنبه 22 تیر 1392, 12:19 عصر
بزار ییه نمونه کد بنویسم بهت بدم منظورمو بهتر درک کنی .... !!!

rezam44
شنبه 22 تیر 1392, 12:21 عصر
بزار ییه نمونه کد بنویسم بهت بدم منظورمو بهتر درک کنی .... !!!

ببخشید افتادید تو زحمت

CsharpNevisi
شنبه 22 تیر 1392, 13:14 عصر
ببین این به دردت میخوره ؟؟؟

khokhan
شنبه 22 تیر 1392, 15:32 عصر
اسم و آدرس و شماره تماس افرادی که می خوایم جستجو کنیم تو یه دونه فایل اکسل نوشته شده.

توقع ما از برنامه اینه که وقتی یه مکانی رو جستجو می کنیم مثلا اسم یه محله رو دادیم... هم اون محله رو زوم کنه و بهمون بگه که چند نفر توی این محله هستن که توی لیست ما وجود دارن.




[/COLOR]

توی این لینک (http://greatmaps.codeplex.com/) سه عدد dll و یه نمونه exe مربوط به چیزی که مد نظر شماست گذاشته به احتمال زیاد به کارتون بیاد

mohsen22
شنبه 22 تیر 1392, 17:47 عصر
توی این لینک (http://greatmaps.codeplex.com/) سه عدد dll و یه نمونه exe مربوط به چیزی که مد نظر شماست گذاشته به احتمال زیاد به کارتون بیاد

عجب مثال قشنگیه . جزئیاتی که راجع به این مثال کشف کردید چیه ؟ ظاهرا ان لاینه

rezam44
شنبه 22 تیر 1392, 18:49 عصر
ببین این به دردت میخوره ؟؟؟

خیلی متشکرم.. داداش ...
اسمتونو هم نمیدونم.... شرمنده کردید:خجالت:

ehsan7007
شنبه 22 تیر 1392, 19:28 عصر
سلام به همه !

این روش به نظرم خوب اومد :

یه پیکچر باکس توی یک پنل بزارید و sizemod پیکچر با کس رو zoom بزارید . دقت کنید داک پیکچر باکس باید none باشه.




اینطوری با حرکت موس حرکت می کنه (درگ) :

public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();






private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(this.pictureBox1.Handle, 0xa1, 0x2, 0);
}




تنها کاری که لازمه اینه که نقشه اون شهر که یک تصویره زوم کنید و همزمان لوکیشنش رو در پنل جابه جا کنید .
برای زوم که کافیه width و height پیکچر باکس رو افزایش بدی .

حالا مثلا می خوای بری به نقطه ی A ؛ باید بدونی که چقد زوم کنی و از همه مهمتر اینکه بعد از زوم پیکچر باکس چقد جابجا بشه .

برات یه مثال نوشتم؛ این نمونه برای زوم و جابجایی و پیدا کردن مشهد و تهران در نقشه است :


لینک دانلود از مدیا فایر (http://www.mediafire.com/?ycaxw2lthzix9m9)


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

CsharpNevisi
شنبه 22 تیر 1392, 19:54 عصر
این راهی که دوستمون " ehsan7007 " گفت :
راه دومیه که من گفتم که درست کردنش کسل کنندس .... ولی نسبت به اولی قدرت بیشتری خواهد داشت چون اسکرول میخوره و یا حتی میتونی نقشه رو درگ کنی ... !!!
ولی راه اول ساده تره و صبرو حوصله کمتری میخواد ... !!!!

ehsan7007
شنبه 22 تیر 1392, 20:09 عصر
از دوستان اگر کسی خواست گوگل ارث دو بعدی درست کنه :

1. تصویری مثل اونیکه دیدید اما در حد گیگاپیکسلی گیر بیارید تا حد اقل بتونید جزئیات بیشتری رو نمای بده .(البته اینکار اصلا پیشنهاد نمی شه )

2. در وسط پنل پیکچر باکسی با یه تصویر نقطه مانند بزارید ؛ یه دیتابیس با چهار فیلد نام ، ایکس و ایگرگ و زوم درست کنید.

3. کاربر نقطه مد نظرش رو با جابجایی تصویر طوری تنظیم می کنه که روی اون نقطه ای که ساختیم قرار بگیره ، حالا تو تکست باکس اسم مکان رو می نویسه و بقیه ی فیلد ها خودکار پر میشن ( برای مقدار زوم اندازه ی فعلی رو بدست میاریم ، برای ایکس و ایگرگ هم مختصات پیکچر باکس)


4. هر وقت کاربر اسم مکانی رو سرچ کنه (البته اگر قبلا ذخیره شده باشه ) خیلی راحت به اون مکان منتقل میشه .


برای اون قسمت تصویر که گفتم پیشهناد نمی شه می تونید یه فولدر درست کنید و تصویر حجیمتون رو تکه تکه توش بریزید و از اون لود کنید .

البته سه بعدی اش ( فقط کره ی زمین ! نه ساختمون ها ) با XNA می شه درست کرد ؛ اگر هم کسی حوصله داشت حتی می تونه ساختمان های سه بعدی شهر های بزگ جهان رو هم بزاره ( برای اینکار باید اون ها رو از گوگل ارث استخراج کنید ) .

با عرض پوزش به تایپیک مربوط نبود ها ؛ صرفا جهت اطلاع !

aghayex
شنبه 22 تیر 1392, 21:47 عصر
اگه بشه نقشه ها رو از دیتابیس گوگل ارث خوند که عالی میشد

ehsan7007
شنبه 22 تیر 1392, 22:59 عصر
اگه بشه نقشه ها رو از دیتابیس گوگل ارث خوند که عالی میشد


نرم افزار google map downloader به شما امکان دانلود و مرور افلاین رو میده که اگه خواستید می تونید تو سایت پی سی دانلود سرچ کنید.

اگر درباره اون ساختمون های سه بعدی ای که گفتم می گید ، بله میشه .
کافیه گوگل ارث رو حالت DirectX اجرا کنید ، اون وقت می تونید با 3dRiper ساختمان ها و درختان سه بعدی رو بطور کامل استخراج کنید ، پس از یسری تنظیمات فایل 3ds ای که با 3dsmax باز می کنید ، درست مثل ارث خواهد بود.

البته من بیشتر دنبال تکسچر کره ی زمین می گردم که جزئیاتش بالا باشه ، اگه یه تصویر از تمام جهان با جزئیاتی در حد یک شهر وجود داشت واقعا فوق العاده بود ؛ با هاش خیلی کارا می شد کرد ، فکر کنم حجمش 100 گیگی می شد!

a1053r
دوشنبه 24 تیر 1392, 02:36 صبح
دوست عزیز کاری که شما میخوای بکنی بش میگن برنامه نویسی gis که اون خروجی ش هست که شما عکس میبینی کد نویسیش راحته اما بیا نقشش رو پیدا کن و بارگذاری کن وگرنه انتظار نداشته باش انقدر بتونی زوم کنی که بری تو خیابون و بعد کوچه نه چنین عکسی هست نه چنین زومی برو تو کد نویسی gis جوابتو راحت میگیری.
تو انجمن جستجو کن مقاله زیاد نوشتم در این باره

rezam44
دوشنبه 24 تیر 1392, 03:25 صبح
دوست عزیز کاری که شما میخوای بکنی بش میگن برنامه نویسی gis که اون خروجی ش هست که شما عکس میبینی کد نویسیش راحته اما بیا نقشش رو پیدا کن و بارگذاری کن وگرنه انتظار نداشته باش انقدر بتونی زوم کنی که بری تو خیابون و بعد کوچه نه چنین عکسی هست نه چنین زومی برو تو کد نویسی gis جوابتو راحت میگیری.
تو انجمن جستجو کن مقاله زیاد نوشتم در این باره

با این برنامه : Arc Gis development ؟

a1053r
دوشنبه 24 تیر 1392, 13:35 عصر
اره جستجو کنی free هست تو اینترنت

mimi65
دوشنبه 24 تیر 1392, 21:34 عصر
سلام دوستان خوبم....:چشمک:

بنده قصد دارم یه برنامه بنویسم که بشه بصورت آفلاین روی نقشه یه شهر (از قبل تعیین شده) جستجو کرد و قابلیت زوم هم داشته باشه.(برای استفاده در PC)

اسم و آدرس و شماره تماس افرادی که می خوایم جستجو کنیم تو یه دونه فایل اکسل نوشته شده.

توقع ما از برنامه اینه که وقتی یه مکانی رو جستجو می کنیم مثلا اسم یه محله رو دادیم... هم اون محله رو زوم کنه و بهمون بگه که چند نفر توی این محله هستن که توی لیست ما وجود دارن.



حالا از دوستان عزیزم می خوام منو راهنمایی کنن که چطوری باید شروع کنم...:لبخندساده:
آوردن نقشه و گذاشتن زوم و ...

طاعاتتون هم قبول باشه ان شاا..ّ. !:قلب:



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

mimi65
سه شنبه 25 تیر 1392, 03:20 صبح
چقدر؟!!:متفکر:

mimi65
سه شنبه 25 تیر 1392, 11:29 صبح
هیچ کی نمیدونه؟

CsharpNevisi
سه شنبه 25 تیر 1392, 12:33 عصر
هیچ کی نمیدونه؟

خب این دیگه بستگی به سطح دانش ... همت و الگوریتم های خودت داره .... !!!!

rezam44
سه شنبه 25 تیر 1392, 18:51 عصر
خب این دیگه بستگی به سطح دانش ... همت و الگوریتم های خودت داره .... !!!!

.........................................:قلب:

aghayex
سه شنبه 25 تیر 1392, 19:23 عصر
نرم افزار google map downloader به شما امکان دانلود و مرور افلاین رو میده که اگه خواستید می تونید تو سایت پی سی دانلود سرچ کنید.
این برنامه ها که از سرور گوگل عکس ها رو دریافت می کنن اگه بخواهی مثلا عکس یه شهر رو ا زوم 17 یا 16 بگیری سرور گوگل سریع ای پی شما رو بلاک می کنه .
آیا راه حلی برای این قضیه دارید

rezam44
سه شنبه 25 تیر 1392, 19:31 عصر
این برنامه ها که از سرور گوگل عکس ها رو دریافت می کنن اگه بخواهی مثلا عکس یه شهر رو ا زوم 17 یا 16 بگیری سرور گوگل سریع ای پی شما رو بلاک می کنه .
آیا راه حلی برای این قضیه دارید

کار باهاش چطوریه؟ من اصلا هیچی نتونستم برداشت کنم!!

NaserHadi
پنج شنبه 24 مرداد 1392, 15:36 عصر
با سلام و تشکر
دوست عزیز اگه ممکنه برنامه نمونه که گذاشتی رو با NET 4. دو مرتبه بذاری خیلی ممنون میشم

NaserHadi
پنج شنبه 24 مرداد 1392, 15:37 عصر
ببین این به دردت میخوره ؟؟؟

با سلام و تشکر
دوست عزیز اگه ممکنه برنامه نمونه که گذاشتی رو با NET 4. دو مرتبه بذاری خیلی ممنون میشم

CsharpNevisi
چهارشنبه 20 شهریور 1392, 19:28 عصر
با سلام و تشکر
دوست عزیز اگه ممکنه برنامه نمونه که گذاشتی رو با NET 4. دو مرتبه بذاری خیلی ممنون میشم

با فریم ورک 4 نوشتم

mikhak001
شنبه 21 تیر 1393, 22:58 عصر
برای لود کردن همه نقشه های آنلاین درون نرم افزار گوگل ارث به این سایت برید
http://booken.xzn.ir/%D9%84%D9%88%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D9%85%D8%A7%D9%87%D9%88%D8%A7%D8%B1%D9%87-%D8%A7%DB%8C-%D8%A2%D9%86%D9%84%D8%A7%DB%8C/