Membuat point dengan metode markers menggunakan OpenLayers

untuk membuat point/titik diatas map atau istilah resminya POI (Point Of Interest) dalam OpenLayers bisa menggunakan metode Marker. live demonya bisa dilihat di link membuat_poi_dengan_metode_marker.html

fungsi dasarnya adalah “addMarker”, dan berikut cara penggunaannya:

  1. tentu saja tampilkan dulu mapnya. cara simple nya bisa dilihat di link menampilkan-map-simple-menggunakan-openlayers.
  2. buat layernya untuk “wadah” titik POInya tersebut.
    var markers = new OpenLayers.Layer.Markers( "Markers" );
    var_map.addLayer(markers);
  3. deklarasikan atribut-atribut POInya tersebut seperti ukuran, offsetnya, icon yang digunakan, juga lokasi POInya (berupa lonlat)
    var size = new OpenLayers.Size(21,25);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);
    var location = new OpenLayers.LonLat(90,10);
  4. dan terakhir, panggil fungsinya
    markers.addMarker(new OpenLayers.Marker(location,icon));
  5. just it! sekarang tampilkan map anda di browser,dan akan ada titik merah sesuai location yang anda definisikan.
  6. ini full scriptnya
    var markers = new OpenLayers.Layer.Markers( "Markers" );
    var_map.addLayer(markers);
     
    var size = new OpenLayers.Size(21,25);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);
    var location = new OpenLayers.LonLat(90,10);
    markers.addMarker(new OpenLayers.Marker(location,icon));
Posted in Dasar | Tagged , , , , | 16 Comments

OpenLayers Control

untuk menambahkan control-control dalam menavigasikan map, pertama lihat dulu cara menampilkan map dengan sederhana di link Menampilkan map (osgeo).

lalu pada line

var_map = new OpenLayers.Map( 'id_map' );

 

ubah menjadi

var_map = new OpenLayers.Map( 'map', {
                    controls: [
 
                    ]});

dan isikan command control-control yang diinginkan didalam tag

controls: [
          	//ini diisikan command untuk menambahkan control-controlnya
          ]

dan inilah daftar command control-controlnya :

  1. untuk navigasi peta dengan mouse. (meskipun sudah default bisa dinavigasikan tanpa script ini :p)
    new OpenLayers.Control.Navigation(),
  2. untuk pan zoom (seperti zoom, dan navigasi manual)
    new OpenLayers.Control.PanZoomBar(),
  3. layer switcher, atau mengganti basemap ketika layer yang dibuat lebih dari satu
    new OpenLayers.Control.LayerSwitcher({'ascending':false}),
  4. permanent link untuk menyimpan link peta sesuai yang sedang tampil saat itu
    new OpenLayers.Control.Permalink('permalink'),
  5. menampilkan skala pada peta
    new OpenLayers.Control.ScaleLine(),
  6. menampilkan lonlat ketika mouse sedang diatas peta
    new OpenLayers.Control.MousePosition(),
  7. menampilkan map kecil untuk summary peta keseluruhan
    new OpenLayers.Control.OverviewMap(),
  8. dan inilah script utuhnya
    var_map = new OpenLayers.Map( 'map', {
                        controls: [
                            new OpenLayers.Control.Navigation(),
                            new OpenLayers.Control.PanZoomBar(),
                            new OpenLayers.Control.LayerSwitcher({'ascending':false}),
                            new OpenLayers.Control.Permalink(),
                            new OpenLayers.Control.ScaleLine(),
                            new OpenLayers.Control.Permalink('permalink'),
                            new OpenLayers.Control.MousePosition(),
                            new OpenLayers.Control.OverviewMap(),
                            new OpenLayers.Control.KeyboardDefaults()
                        ]});
Posted in Dasar | Tagged , | 19 Comments

Menampilkan map google menggunakan OpenLayers

dalam menampilkan maps Google menggunakan openlayers, kita membutuhkan Google API dalam penggunaannya. simak tutorial ini untuk mengetahui penggunaan Google API (dan OpenLayers tentunya) untuk menampilkan Google Maps di dalam website.

  1. live demo tutorial ini bisa dilihat di map_google_menggunakan_openlayers.html
  2. buat struktur html sederhana seperti berikut
    <html>
    	<head>
    		<title>Google Maps - OpenLayers</title>
    	</head>
    	<body>
    	</body>
    </html>
  3. masukkan style berikut didalam tag <head>
    <style>
    @media screen
    	{#map{width: 512px; height:256px; border: 1px solid lightgrey;}}
    	.olLayerGoogleCopyright{right:3px;bottom:2px;left:auto;}.olLayerGoogleV3.olLayerGoogleCopyright{bottom:0;right:0!important;}.olLayerGooglePoweredBy{left:2px;bottom:2px;}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:0!important;}
     
    </style>
  4. didalam tag <head> juga, load Google API menggunakan script seperti berikut (ini adalah google API untuk belajaropenlayers.com), generate google api-mu sendiri di http://code.google.com/apis/maps/signup.html
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA0fCprI0COg6sgW8Fc_vNzhSjKNeNhClvlSmpEOZthh6rTOSKaxRE9apyuebhBYj1PrfBQGuxjL-MJA" type="text/javascript"></script>
  5. masih didalam tag <head>, load library OpenLayers nya
    <script src="[direktori Openlayersnya]/OpenLayers.js"></script>
  6. buat tag javascript didalam tag <head> setelah line load library OpenLayers untuk wadah scriptnya nanti
    <script type="text/javascript">
     
    </script>
  7. definisikan variable global untuk menampung map
    <script type="text/javascript">
    	var map;
     
    </script>
  8. definisikan fungsi untuk memanggil mapnya
    <script type="text/javascript">
    	var map;
     
    	function init() {
     
    	}
    </script>
  9. didalam fungsi “init()” gunakan command OpenLayers untuk memanggil map
    <script type="text/javascript">
    	var map;
     
    	function init() {
    		map = new OpenLayers.Map('map');
     
    	}
    </script>
  10. tambah control untuk merubah-rubah baselayernya
    <script type="text/javascript">
    	var map;
     
    	function init() {
    		map = new OpenLayers.Map('map');
    		map.addControl(new OpenLayers.Control.LayerSwitcher());
     
    	}
    </script>
  11. tambahkan semua layers yang google sediakan
    <script type="text/javascript">
    	var map;
     
    	function init() {
    		map = new OpenLayers.Map('map');
    		map.addControl(new OpenLayers.Control.LayerSwitcher());
     
                var gphy = new OpenLayers.Layer.Google(
                    "Google Physical",
                    {type: G_PHYSICAL_MAP} //google physical
                );
                var gmap = new OpenLayers.Layer.Google(
                    "Google Streets", // google street
                    {numZoomLevels: 20}
                );
                var ghyb = new OpenLayers.Layer.Google(
                    "Google Hybrid", //google hibrid
                    {type: G_HYBRID_MAP, numZoomLevels: 20}
                );
                var gsat = new OpenLayers.Layer.Google(
                    "Google Satellite", //google satelite
                    {type: G_SATELLITE_MAP, numZoomLevels: 22}
                );
     
                map.addLayers([gphy, gmap, ghyb, gsat]);
     
    	}
    </script>
  12. tambahkan command default posisi map
    <script type="text/javascript">
            var map;
     
            function init() {
                map = new OpenLayers.Map('map');
                map.addControl(new OpenLayers.Control.LayerSwitcher());
     
                var gphy = new OpenLayers.Layer.Google(
                    "Google Physical",
                    {type: G_PHYSICAL_MAP}
                );
                var gmap = new OpenLayers.Layer.Google(
                    "Google Streets", // the default
                    {numZoomLevels: 20}
                );
                var ghyb = new OpenLayers.Layer.Google(
                    "Google Hybrid",
                    {type: G_HYBRID_MAP, numZoomLevels: 20}
                );
                var gsat = new OpenLayers.Layer.Google(
                    "Google Satellite",
                    {type: G_SATELLITE_MAP, numZoomLevels: 22}
                );
     
                map.addLayers([gphy, gmap, ghyb, gsat]);
     
                map.setCenter(new OpenLayers.LonLat(10.2, 48.9), 5);
    	}
    </script>
  13. tambahkan <div id=”map”></div> didalam tag <body>
  14. panggil fungsi “init()” untuk mengeksekusi semua yang sudah kita kerjakan. bisa dengan menambahkan <body onload=”init()”>
  15. dan inilah script lengkapnya
    <html>
    <head>
    	<title>Google Maps - OpenLayers</title>
    	<style>
    		@media screen{#map{width: 512px; height:256px; border: 1px solid lightgrey;}}
                    .olLayerGoogleCopyright{right:3px;bottom:2px;left:auto;}.olLayerGoogleV3.olLayerGoogleCopyright{bottom:0;right:0!important;}.olLayerGooglePoweredBy{left:2px;bottom:2px;}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:0!important;}
    	</style>
    	<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA0fCprI0COg6sgW8Fc_vNzhSjKNeNhClvlSmpEOZthh6rTOSKaxRE9apyuebhBYj1PrfBQGuxjL-MJA" type="text/javascript"></script>
        	<script src="http://openlayers.org/dev/OpenLayers.js"></script>
    <script type="text/javascript">
            var map;
     
            function init() {
                map = new OpenLayers.Map('map');
                map.addControl(new OpenLayers.Control.LayerSwitcher());
     
                var gphy = new OpenLayers.Layer.Google(
                    "Google Physical",
                    {type: G_PHYSICAL_MAP}
                );
                var gmap = new OpenLayers.Layer.Google(
                    "Google Streets", // the default
                    {numZoomLevels: 20}
                );
                var ghyb = new OpenLayers.Layer.Google(
                    "Google Hybrid",
                    {type: G_HYBRID_MAP, numZoomLevels: 20}
                );
                var gsat = new OpenLayers.Layer.Google(
                    "Google Satellite",
                    {type: G_SATELLITE_MAP, numZoomLevels: 22}
                );
     
                map.addLayers([gphy, gmap, ghyb, gsat]);
     
                map.setCenter(new OpenLayers.LonLat(10.2, 48.9), 5);
    	}
    </script>
    </head>
    	<body onload="init()">
    		<div id="map"></div>
    	</body>
    </html>

Posted in Dasar | Tagged , , | 15 Comments

Menampilkan map simple menggunakan openlayers

contoh hasil jadi tutorial ini bisa dilihat di  map_simple_menggunakan_openlayers.html

  1. buat struktur html sederhana dalam menampilkan sebuah page
    1. <head>
    2. <title>simple map menggunakan openlayers</title>
    3. </head>
    4. <body>
    5. </body>
    6. </html>
  2. didalam tag <head></head>, sisipkan style css seperti berikut
    1. <style>
    2. @media screen
    3. {
    4. #id_map{width: 512px; height:256px; border: 1px solid lightgrey;}
    5. }
    6. </style>
  3. masih didalam tag <head></head>, load library openlayers dengan menggunakan tag <script type=”text/javascript” src=”[direktori openlayersnya]/lib/OpenLayers.js”></script>
  4. tepat dibawah line untuk meload library openlayers, buat tag untuk membuat fungsi javascript
    1. <script type="text/javascript">
    2.  
  5. buat variabel global didalam tag <script> yang sudah dibuat diatas
    1. var var_map, layer;
  6. buat fungsi untuk mengeksekusi code yang akan kita buat
    1. var var_map, layer;
    2. function function_map(){
    3.  
    4. }
  7. didalam fungsi “function_map()”, definisikan variable untuk mengambil source map.
    1. var var_map, layer;
    2. function function_map(){
    3. var_map = new OpenLayers.Map( 'id_map' );
    4. }
  8. buat layer untuk mapnya, contoh disini dengan memanggil map wms osgeo dengan nama layer “basic”. 
    1. var var_map, layer;
    2. function function_map(){
    3. var_map = new OpenLayers.Map( 'id_map' );
    4. layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",{layers: 'basic'});
    5. var_map.addLayer(layer);
    6.  
    7. }
  9. tambahkan control map untuk menampilkan map dengan tampilan maksimal
    1. var var_map, layer;
    2. function function_map(){
    3. var_map = new OpenLayers.Map( 'id_map' );
    4. layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",{layers: 'basic'});
    5. var_map.addLayer(layer);
    6. var_map.zoomToMaxExtent();
    7. }
  10. tambahkan <div id=”id_map”> didalam tag <body></body> untuk penempatan mapnya.
  11. terakhir, tinggal memanggil fungsi map yang sudah kita buat. bisa onClick, onLoad, atau terserah anda dengan menambahkan tagnya di dalam html. contohnya, <body onload=”function_map()”>
  12. dan inilah script utuhnya
    1. <html>
    2. <head>
    3. <title>Simple map menggunakan openlayers</title>
    4. <style>
    5. @media screen
    6. {#id_map{width: 512px; height:256px; border: 1px solid lightgrey;}
    7. }
    8. </style>
    9. <script type="text/javascript" src="openlayers/lib/OpenLayers.js"></script>
    10. <script type="text/javascript">
    11. var var_map, layer;
    12. function function_map(){
    13. var_map = new OpenLayers.Map( 'id_map' );
    14. layer = new OpenLayers.Layer.WMS( "OpenLayers WMS","http://vmap0.tiles.osgeo.org/wms/vmap0",{layers: 'basic'} );
    15. var_map.addLayer(layer);
    16. var_map.zoomToMaxExtent();
    17. }
    18. </script>
    19. </head>
    20. <body onLoad="function_map()">
    21. <div id="id_map"></div>
    22. </body>
    23. </html>
  13. simpan semua hasil pekerjaan tadi dengan nama coba.html, lalu buka dengan webbrowser anda.
Posted in Dasar | 36 Comments

Persiapan – Installasi ms4w dan openlayers

1. WEB SERVER

saya rekomendasikan untuk memakai webserver MS4W. selain gratis, juga memang MS4W diperuntukkan untuk web mapping. download saja di website http://www.maptools.org/ms4w/ . disarankan untuk mendownload versi .zip(compressed). karena dalam penginstallannya tidak perlu koneksi lagi ke internet.

extract file “ms4w_x.x.zip” kedalam drive C:\ atau terserah anda yang penting extract di root drive tersebut. sehingga akan terdapat C:\ms4w atau D:\ms4w. asal jangan diextract kedalam subfolder seperti C:\[bla bla]\ms4w\. bukan larangan, hanya untuk memudahkan konfigurasinya diwaktu selanjutnya.

didalam ms4w seharusnya ada folder C:\ms4w\Apache\htdocs\ karena didalam folder inilah kita akan menyimpan semua pekerjaan kita.

jalankan ms4w dengan double click file “apache-install.bat” yang terdapat dalam folder C:\ms4w\

catatan: jika anda penguna windows 7, klik kanan “apache-install.bat” dan klik “run as administrator” untuk menjalankan ms4w.

tes ms4w apakah sudah berjalan dengan baik atau tidak dengan mengetikkan “localhost” di web browser anda.

jika tampil seperti gambar berikut:

maka ms4w sudah siap digunakan. namun jika masih belum berhasil, ada kemungkinan port nya bentrok dan bisa diatasi dengan mengganti httpd.conf yang terdapat dalam file C:\ms4w\Apache\conf\httpd.conf. buka dengan notepad, cari kata “listen” dan ubah angka 80 didepannya dengan angka terserah anda (max 4 angka). ambillah contoh kita ganti dengan 8787. maka tes sekali lagi dengan mengetikkan “localhost:8787″ pada browser anda.

2. Library OpenLayers

download versi terbarunya di http://openlayers.org/. pilih yang berekstensi .zip, jika sudah selesai download, extract filenya ke dalam folder C:\ms4w\Apache\htdocs\openlayers\ dan pastikan strukturnya seperti ini :

untuk menguji apakah library openlayers sudah benar bisa membuat file html sederhana seperti berikut:

simpan file html diatas dengan nama coba.html dan simpan difolder C:\ms4w\Apache\htdocs\

lalu buka file C:\ms4w\Apache\htdocs\openlayers\lib\Openlayers.js dan tambahkan kode berikut di line paling atas:

alert("openlayers berhasil diinstall");

ketikkan alamat “http://localhost/coba.html” dibrowser anda. jika keluar popup alert bertuliskan “openlayers berhasil diinstall” maka anda sudah bisa menggunakan library openlayers. dan selamat belajar… :)

Posted in Dasar | Tagged , , | 21 Comments