Murat OZDEMiR

Anadolu Üniversitesi Fizik Bölümü'nden 2002 yılında mezun olarak aynı yıl başladığı ESOGU Fizik Öğretmenliği Tezsiz Yüksek Lisans Programı'ndan 2003 yılında mezun oldu. Aynı yıl başladığı ESOGU Fizik Yüksek Lisans Programı'ndan araya askerliği de sıkıştırarak 2006 yılında mezun oldu. Bu süretçe çeşitli reklam ajanslarında tam zamanlı ve freelance olarak PHP&ActionScript Coder olarak çalıştı. Halen bir yazılım firmasında yazılım uzmanı olarak çalışmaktadır.

Bu çalışmamızda PHP Curl ve JQuery kütüphanelerinden faydalanarak başka bir domaine form submit edip ve sonuç alacağız. İlk olarak ajax proxy sayfamızı oluşturmakla işe başlayalım.


[?php

header("Cache-Control: no-cache");

header("Content-type:text/html; charset=utf-8");

function geturl($url,$request){
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 

  $results = curl_exec($ch);
  curl_close($ch);
  return $results;

}

$theurl = $_POST["url"];

$theurl = urldecode($theurl);

$theurl = str_replace( "& #038;", "&", $theurl );

$req=$_POST['vars'];//POST edilecek değişken(ler)

$v = geturl( $theurl,$req);

$v = mb_convert_encoding($v, "UTF-8", "ISO-8859-9");//Sonuç alınacak sayfanın kodlaması sizinkinden farklı ise

echo $v;

?]

Yukarıdaki kodun bulunduğu sayfayı ajax_proxy.php olarak kaydediyoruz. Şimdi POST işlemini yapıp sonuç yazdıracağımız sayfaya geçelim

[HTML]
[HEAD]

[script type="text/javascript" src="jquery-1.3.1.min.js"][/script]//jquery kütüphanesini sayfamıza dahil ediyoruz

[script type='text/javascript']
function post_to_ajaxproxy(){
document.getElementById("loader_div").innerHTML='[img src="loading.gif" width="24" height="24"]';//Beklerken gösterilecek olan yükleme animasyonu

var var1=document.getElementById("var1_box").value;
var var2=document.getElementById("var2_box").value;

        $.ajax({
           type: 'POST',
           url: 'ajax_proxy.php',
           data: "&url="+var1+"&vars="+var2,
           success: function(sonuc) {
                document.getElementById("loader_div").innerHTML='';
		document.getElementById('result_div').innerHTML = sonuc;
           }
         });
}
[/script]

[/HEAD]
[BODY]

[input name="var1_box" id="var1_box" type="text" value="http://www.domain_adi.com/sorgulanacak_sayfa.asp"/]
[input name="var2_box" id="var2_box" type="text" value="post_edilecek_degisken"/]
[input type="button" value="Gönder"  onclick="post_to_ajaxproxy()"/]
[div id="loader_div"][/div]//yükleme animasyonunun gösterileceği
[div id="result_div"][/div]//sonuçların gösterileceği

[/BODY]
[/HTML]

Google Map ile çalışmak için ilk öncelikle

http://maps.googleapis.com/maps/flash/release/sdk.zip

yukarıdaki liknkten sdk yı indirerek

http://code.google.com/intl/tr-TR/apis/maps/documentation/flash/tutorial-flash.html

yukarıdaki linkte anlatıldığı gibi component kurulumunu yapıyoruz. Daha sonra google hesap bilgilerimiz ile aşağıdaki linkten

http://code.google.com/intl/tr-TR/apis/maps/signup.html

api keyimizi alıyoruz. Bu işlemleri tamamladıktan sonra Flash’da component panelinden google map’i sahneye sürükleyip bırakıyoruz ve actionscript panelimizi açarak, aşağıdaki gibi çalışacağımız kütüphaneleri import ediyoruz

import com.google.maps.Map;

import com.google.maps.LatLng;

import com.google.maps.MapEvent;

import com.google.maps.MapType;

import com.google.maps.LatLngBounds;

import com.google.maps.overlays.MarkerOptions;

import com.google.maps.overlays.Marker;

import flash.display.Stage;

Bu arada marker iconu olarak kullanacağımız PNG formatındaki grafikleri file>import>import to stage yoluyla sahnemize import ediyoruz. Daha sonra bu grafikleri tek tek seçerek F8 tuşuna basıyoruz. açılan pencerede “export for actionscript” kutusunu işaretleyerek class alanına ilgili iconun ismini yazıyoruz

Tüm iconlar için aynı işlemi tekrarlıyoruz. Daha sonra tüm ikonları ana sahneden silebiliriz. Sildiğimiz iconlar class olarak libraryde saklanacaktır. Şimdi enlem boylam değerlerimize göre haritamızın sınırlarını belirleyelim,

var lats:Array = new Array(37.4419,37.3243,37.5411,37.5551,37.3454,37.3411);//Enlemler
var lons:Array = new Array(-122.1419,-122.2215,-122.1545,-122.2954,-122.1432,-122.1665);//Boylamlar // Bounds var maxlat = Math.max.apply(null, lats); var maxlon = Math.max.apply(null, lons); var minlat = Math.min.apply(null, lats); var minlon = Math.min.apply(null, lons);

Ekleyeceğimiz marker tipleri,

//Marker tipleri, 6 tane marker ekliyoruz (p:pharmacy, h:hospital)
var markerType:Array = new Array("h","p","h","p","p","h");

Haritamızı tanımlayıp sahneye ekliyoruz,

var map:Map =  new Map();
map.key = "api keyiniz";
map.setSize(new Point(stage.stageWidth,stage.stageHeight));//harita boyutlarını stage in boyutlarına eşitliyoruz
map.x = 0;
map.y = 0;
map.addEventListener(MapEvent.MAP_READY, onMapReady);
this.addChild(map);

marker ekleme fonksiyonumuz

function addMarker(i){

var markerOptions:MarkerOptions = new MarkerOptions({});
markerOptions.draggable = false;
markerOptions.hasShadow = false;

if(markerType[i]=="h"){

var newicon_h:hospital = new hospital();

addChild(newicon_h);

markerOptions.icon = newicon_h;

}else if(markerType[i]=="p"){

var newicon_p:pharmacy = new pharmacy();

addChild(newicon_p);

markerOptions.icon = newicon_p;

}

var point:LatLng = new LatLng(lats[i],lons[i]);
var markerLocal:Marker = new Marker(point, markerOptions);
map.addOverlay(markerLocal);

}

markerlarımızı haritaya ekliyoruz,

function onMapReady(event:Event):void{

var latLngBounds:LatLngBounds = new LatLngBounds(new LatLng(minlat,minlon), new LatLng(maxlat,maxlon));//sinirlari belirliyoruz

map.setCenter( latLngBounds.getCenter(), map.getBoundsZoomLevel(latLngBounds), MapType.NORMAL_MAP_TYPE);//sınırlara gore belirledigimiz zoom seviyesini bir azaltarak haritayi ortaliyoruz

for (var i=0; i < markerType.length; i++) {addMarker(i);}

}

Sonuç :

© 2010 bilyaz.com , Programlama Makaleleri, Yazılım Makaleleri , Örnek Kodlar , Eğitim Videoları , C#,ASP.NET,SQL,PHP Suffusion WordPress theme by Sayontan Sinha