Set zoom level of a google map based on markers

Posted by Aiska Hendra


Yesterday my Project Manager asks me to embedded Google Map into the module.

It’s should be easy to do, but after I try so many times I failed to complete this task.

The main problem is I cannot set zoom level of Google Map that all markers are visible.

Then I search in Google and Google Map Documentation, and I still did not find any good solution,

So I decide to find my own solution. This is my solution
First think I do is get the minimum, maximum and center of the marker.

var minlat = [Minimum Latitude];
var maxlat = [Maximum Latitude];
var minlng = [Minimum Longitude];
var maxlng = [Maximum Longitude];
var ctrlng = [Center Longitude];
var ctrlng = [Center Longitude];


The second way is I calculate the distance of Minimum and Maximum Latitude and Longitude. After I search in Google I found formula to calculate distance in Google Map.

var dist = (6371 * Math.acos(Math.sin(minLat / 57.2958) * Math.sin(maxLat / 57.2958) + (Math.cos(minLat / 57.2958) * Math.cos(maxLat / 57.2958) * Math.cos((maxLng / 57.2958) - (minLng / 57.2958)))));

Then I calculate Google Map distance for each Zoom Level by using of formula of distance.
Base on calculate of Google Map distance for each level, so I make formula to calculate zoom level. The formula is :

var zoom = Math.floor(8 - Math.log(1.6446 * dist / Math.sqrt(2 * (mapdisplay * mapdisplay))) / Math.log (2));


where :
dist = the distance of bound
mapdisplay = the square display of Google Map in pixel (I get from height or width of Google Map where is the smallest).

But I have a problem when Minimum and Maximum of Latitude is equal, and the zoom level become incorrect,

The problem is I calculate the horizontal marker, and calculate the diagonal of Google map where diagonal is more longer than horizontal or vertical, that's why zoom level is not correct.

So I decide to make all diagonal calculate. And I change the minimum and maximum of latitude and longitude. To the largest value so I can calculate the diagonal value.

var interval = 0;
If ((maxlat - minlat) > (maxlng - minlng)) {
interval = (maxlat - minlat) / 2;
minlng = ctrlng - interval;
maxlng = ctrlng + interval;
} else {
interval = (maxlng - minlng) / 2;
minlat = ctrlat - interval;
maxlat = ctrlat + interval;
}


Then I calculate again, and it’s work.

full code should be like this

var minlat = [Minimum Latitude];
var maxlat = [Maximum Latitude];
var minlng = [Minimum Longitude];
var maxlng = [Maximum Longitude];
var ctrlng = [Center Longitude];
var ctrlng = [Center Longitude];
var mapdisplay = 600;
var interval = 0;

If ((maxlat - minlat) > (maxlng - minlng)) {
interval = (maxlat - minlat) / 2;
minlng = ctrlng - interval;
maxlng = ctrlng + interval;
} else {
interval = (maxlng - minlng) / 2;
minlat = ctrlat - interval;
maxlat = ctrlat + interval;
}

var dist = (6371 * Math.acos(Math.sin(minLat / 57.2958) * Math.sin(maxLat / 57.2958) + (Math.cos(minLat / 57.2958) * Math.cos(maxLat / 57.2958) * Math.cos((maxLng / 57.2958) - (minLng / 57.2958)))));

var zoom = Math.floor(8 - Math.log(1.6446 * dist / Math.sqrt(2 * (mapdisplay * mapdisplay))) / Math.log (2));

var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(ctrlat, ctrlng), zoom);


Ok that’s all Thank you, and I hope this article can help you and others.
Thanks to Dusan for the formula and all Google Map Programmer for helping me to Finnish this task.

“Setup did not find any hard disk drives installed in your computer”

Posted by Aiska Hendra

Pernahkah anda melakukan installasi window, namun pada saat installasi tersebut muncul pesan error “Setup did not find any hard disk drives”.

Kepanikan pun mulai melanda diri anda padahal kompter mampu berjalan diatas system operasi Microsoft Vista.

Lalu bagaimana melakukan installasi Windows XP diatas Komputer untuk Window Vista. Seringkali kita melakukan hal tersebut mungkin karena alasan kompartibilatas terhadap beberapa aplikasi atau anda memang benar-benar tidak menyukai Window Vista (seperti saya hehe).

Masalah yang sering dihadapi ketika kita melakukan Downgrade ke Window XP adalah pada saat installasi muncul pesan Error “Setup did not find any hard disk drives installed in your computer”. Pesan tersebut mungkin terasa aneh bagi anda padahal computer anda mampu berjalan diatas Window Vista, lalu kenapa harus memastikan kalau Hardisk tersebut terpasang dengan benar atau tidak.


Inti dari permasalahan ini sebenarnya dikarenakan Komputer baru anda memiliki Storage Controller yang tidak di support oleh Window XP, biasanya terjadi jika Hardisk anda menggunakan SATA (Serial ATA). Hal ini mungkin bisa diatasi dengan cara merubah tipe Controller pada bios dengan menggunakan IDE atau ATA. Namun dalam beberapa kasus terkadang hal tersebut tidak dapat dilakukan salah satunya adalah pada Laptop Sony Vaio VGN-NR180E dan HP Pavilion. dimana kita tidak dapat merubah tipe dari Storage Controller.

Jika komputer memiliki Floppy Disk mungkin masalah tersebut dapat diatasi dengan cara melakukan installasi Driver Storage Controller SATA melalui Floppy, tapi saat ini sangat jarang sekali komputer terbaru yang memiliki Floppy Disk.

Lalu apa yang harus dilakukan jika terjadi masalah tersebut.

Jika hal tersebut terjadi maka perlu melakukan cara yang sedikit rumit, yaitu melakukan kostomisasi terhadap CD Installasi Window XP. Dimana kita harus menambahkan Driver SATA kedalam CD Installasi Window XP.

Untuk dapat melakukan kostomisasi tersebut kita memerlukan software untuk melakukannya. Salah satunya adalah nLite. Dengan menggunakan software tersebut kita dapat melakukan kostomisasi pada CD Installasi Window XP, jadi tunggu apalagi download dan install nLite sekarang.

Setelah anda selesai melakukan download dan installasi nLite. Jalankan program tersebut dan Klik browse untuk mengambil file Installasi Window XP dari CD.


Kemudian akan muncul kotak dialog, dan pilih drive dimana CD Installasi Window XP anda berada dan pilih Next untuk melanjutkan ke langkah berikutnya.


Berikutnya anda akan diarahkan untuk menyimpan temporary files (File sementara) yang digunakan untuk proses Streaming. Sebaiknya buat folder baru dan beri nama yang mudah untuk diingat seperti XPISO.


Kemdian nLite akan menyalin semua file yang diperlukan dari CD Installasi Window XP kedalam folder sementara tersebut. Ketika proses tersebut selesai maka anda akan melihat Informasi dari versi CD Installasi Window XP anda.

Pilih Next lagi untuk melanjutkan ke kotak dialog berikutnya. Berikutnya adalah melakukan kostomisasi terhadap Installasi Window XP, pilih “Driver” dan "Bootable ISO" pada kotak dialog tersebut.

Catatan : Anda juga dapat memilh pilihan yang lain, seperti menambahkan Service Pack 3 atau melakukan Unattanded sehingga anda dapat langsung dapat melakukan installasi tanpa perlu melakukan setting pada saat installasi berjalan. Namun hal tersebut tidak dibahas disini.
Kemudian pilih Next hingga muncul kotak dialog untuk memilih driver. Cara terbaik untuk menambahkan Driver adalah dengan cara mengambil dari CD yang diberikan dari manufaktur komputer atau dengan mengunduhnya dari situs manfaktur komputer anda.

Kemudian browse direktori dimana anda file driver anda di extract dan pilih Open. Sebenarnya tidak masalah file *.inf mana yang anda pilih, karena program akan mengambil semua file dalam folder.

Kemudian nLite akan menampilkan kotak dialog untuk memilih driver mana yang akan dimasukkan, Jika anda tidak tahu driver mana yang ingin dimasukkan anda dapat membuka Device Manager pada Window Vista untuk menentukan model apa yang cocok dengan computer anda, perlu diperhatikan juga jangan memilih 64-bit jika anda menggunakan 32-bit atau memilih versi yang salah.

Saya merekomendasikan anda menambahkan juga Storage dan Network Driver, yang mungkin tidak ada pada CD Installasi Window XP anda.

Ok Kostomisasi terhadap Installasi Window XP selesai dan langkah berikutnya adalah menyimpan hasil dari kostomisasi tersebut. Untuk menyimpannya anda dapat memilih Create Image untuk membuat file ISO yang dapat anda burning nanti dengan menggunakan software burning yang anda miliki atau anda dapat langsung melakukan burning ke CD.
Catatan : Jika anda memilih membuat Image ISO pastikan anda memilih “Make ISO” sebelum anda menekan tombol Next.

Demikian sedikit tulisan dari saya dan semoga tulisan ini bermanfaat bagi anda.

Selamat mencoba dan semoga berhasil dengan Installasi Window XP anda yang baru

Terima Kasih.

Salam,


Aiska Hendra