ホームページ > バックエンド開発 > PHPチュートリアル > php Google APIインターフェイスプログラム_PHPチュートリアル

php Google APIインターフェイスプログラム_PHPチュートリアル

WBOY
リリース: 2016-07-20 11:07:00
オリジナル
1104 人が閲覧しました

php google api インターフェース プログラム

php google api インターフェース プログラム

これは、Google マップを生成するための完全に機能的なクラスです。 複数のクラスのカスタマイズが可能で、ユーザーは JavaScript や Google Maps API の知識がなくても、数分で Web サイトを迅速に実装できます。

class phproogleMap {

/*
* @Google APIキー
*/
private $apiKey ;

/*
* @地図のズームレベル
*/
private $mapZoom = 8 ;

/*
* @マップの幅 div
*/
private $mapWidth = 350 ;

/*
* @マップの高さ div
*/
private $mapHeight = 300 ;

/ *
* @マップ センター
*/
private $mapCenter ;

/*
* マップ タイプの配列
*/
private $googleMapTypes ;

/*
* @マップ タイプ
*/
private $ mapType = 'normal' ;

/*
* @マーカーポイントの配列
*/
private $markerPoints = array();

/*
* @マーカーアドレスの配列
*/
private $markerAddresses = array();

/*
* @マップ
*/
private $googleMapControls = array();

/*
* @マップ div の ID
*/
private $mapDivID ;

/ *
* コンストラクター
*
* @param apiKey
*
* @access public
*
* @return void
*
*/
public function __construct ( $apiKey = null )
{
$this -> is_null ( $apiKey ) ? '' : $apiKey ;
/*** マップの種類を設定します ***/
$this -> setGoogleMapTypes ();
}


/*
*
* @setter
*
* public
*
*/
public function __set ( $name , $value )
{
switch ( $name )
{
case 'apiKey' :
if(! is_string ( $value ))
{
throw new Exception ( $name , $value , 'string' );
}
$this -> $name = $value ;
break;

case 'mapZoom' :
if( filter_var ( $value , FILTER_VALIDATE_INT , array( "options " => array( "min_range" => 0 , "max_range" => 19 ))) == false )
{
新しい例外をスローします ( " $name が範囲外です" );
}
$this - > $name = $value ;
break;

case 'mapWidth' :
if( filter_var ( $value , FILTER_VALIDATE_INT , array( "options" => array( "min_range" => 100 , "max_range" = > 900 ))) == false )
{
新しい例外をスローします ( " $name が範囲外です" );
}
$this -> $name = $value ;
break;

case ' ' :
if( filter_var ( $value , FILTER_VALIDATE_INT , array( "options" => array( "min_range" => 100 , "max_range" => 900 ))) == false )
{
新しい例外をスローする( " $name は範囲外です" );
}
$this -> $name = $value ;
break;

case 'mapType' :
if(! array_key_exists ( $value , $this -> ; googleMapTypes ) )
{
throw new Exception ( " $name は有効なマップ タイプではありません" );
}
$this -> $name = $value ;
break;

case 'mapDivID' :
if( ! is_string ( $value ) )
{
throw new Exception ( " $name は有効な ID ではありません" );
}
$this -> $name = $value ;
break;

case 'mapCenter' :
if ( ! is_array ( $value ) )
{
throw new Exception ( " $name は有効な配列ではありません" );
}
$this -> $name = $value ;
break;

default:
new例外 ( "無効なパラメーター $name " );
}
}


/*
*
* @getter
*
* @access public
*
*/
public function __get ( $name )
{
switch ( $name )
{
case 'apiKey' :
return $this -> apiKey ;
break;

case 'mapZoom' :
return $this ->
break;

case 'mapWidth' :
return $this ->
break;

case 'mapHeight' :
return $this ->
break;

case 'mapType' :
return $this ->
case 'mapDivID' :

return $this ->mapDivID ;

break;

case 'mapCenter' ;

return $this ->

}
/*** ここにいる場合は、例外をスローします ***/
throw new Exception ( " $name が無効です" );
}


/*

*

* @isset
*
* @access public
*
*/
public function __isset ( $name )
{
switch ( $ name )
{
case 'apiKey' :
$this -> apiKey = $name ;
break;

case 'mapZoom' :
$this -> 'mapWidth ' :

$this ->mapWidth = $name ;

break;

case 'mapHeight' :

$this ->mapHeight = $name ;

break;

case 'mapType' :

$this -> ; mapType = $name ;

break;

case 'mapDivID' :

$this ->mapDivID = $name ;

break;

case 'mapCenter' ;
$this -> mapCenter = $name ;
break;

default:
return false ;
}
}


/*
*
* @Set the map types
*
* @access private
*
* @return void
*
*/
private function setGoogleMapTypes ()
{
$this -> googleMapTypes = array( 'physical' => 'G_PHYSICAL_MAP' , 'normal' => 'G_NORMAL_MAP' , 'satellite' => 'G_SATELLITE_MAP' , 'hybrid' => 'G_HYBRID_MAP' );
}

/*
*
* @add to the array of google maps controls
*
* @access public
*
* @return void
*
*/
public function addGoogleMapControl ( $control )
{
$n = sizeof ( $this -> googleMapControls );
$this -> googleMapControls [] = $control ;
}
/*
*
* @get pinpoint marker by address
*
* @access public
*
* @param string $address
*
* @param string $html
*
* @return void
*
*/
public function addMarkerAddress ( $address , $html )
{
$s = sizeof ( $this -> markerAddresses );
$this -> markerAddresses [ $s ][ 'address' ] = $address ;
$this -> markerAddresses [ $s ][ 'html' ]    = $html ;
}

 

/*
*
* @get pinpoint mark by latitude or longitude
*
* @access public
*
* @param string $lat
*
* @param string $long
*
* @param string $html
*
* @return void
*
*/
public function addMarker ( $lat , $long , $html )
{
$pointer = sizeof ( $this -> markerPoints );
$this -> markerPoints [ $pointer ][ 'lat' ]  = $lat ;
$this -> markerPoints [ $pointer ][ 'long' ] = $long ;
$this -> markerPoints [ $pointer ][ 'html' ] = $html ;
}


/*
*
* @The javascript for google to connect
*
* @access public
*
* @return string
*
*/
public function googleJS ()
{
return '' . "n" ;
}

private function noJavascript ()
{
return '' ;
}


public function drawMap ()
{
$js = '

' ;
$js .= $this -> noJavascript ();

$js .= '
' ;

return $js ;

}

} /*** 授業終了 ***/


try
{
/*** 新しいphproogleインスタンス***/
$map = new phproogleMap ();

/** * Google API キー ***/
$マップ -> apiKey = 'YOUR_GOOGLE_API_KEY' ;

/*** ズームは 0 ~ 19 ***/
$map ->マップズーム = 14 ;

/*** マップの幅 ***/
$map ->マップ幅 = 350 ;

/*** マップの高さ ***/
$map ->マップの高さ = 300 ;

/*** マップタイプを設定します ***/
$map -> mapType = 'normal' ;

/*** マップの中心を設定します ***/
$map -> mapCenter = array(- 33.862828 , 151.216974 );

/*** 緯度と経度のマーカーを追加します ***/
$map -> addMarker (- 33.858362 , 151.214876 , '

シドニー オペラ ハウス

教養のある人向け

' );
$map -> addMarker (- 33.862828 , 151.216974 , '

王立植物園

ここにリンク' );


/* ** いくつかのコントロールを追加 ***/
$マップ -> addGoogleMapControl ( 'GMapTypeControl' );
$map -> addGoogleMapControl ( 'GSmallMapControl' );
$map -> addGoogleMapControl ( 'GOverviewMapControl' );

/*** いくつかのマーカーアドレスを追加 ***/
$map -> addMarkerAddress ( '2 Pitt St Sydney NSW Australia' , '

本社

' );
$map -> addMarkerAddress ( '122 Pitt St Sydney NSW Australia' , '

The Factory

' );

/*** マップの div ID を設定します ***/
$map ->mapDivID = 'map' ;
}
catch(Exception $e )
{
echo $e -> getMessage();
}
?


googleJS (); ?>


drawMap (); ?>


一般的に使用される Google マップ開発パラメータ

phproogle::apiKey

これは Google のユーザー API キーです。これは、新しいインスタンスがインスタンス化されるときにコンストラクターを使用して設定することもできます。
phproogle::addGoogleMapControl() phproogle::addGoogleMapControl()
このメソッドは、ズーム コントロール コントローラー、マップ コントロールなど、Google マップの複数のコントロールを設定します。このメソッドを複数回呼び出して、複数のマップ コントロールを設定できます。オプションは次のとおりです:

rol

コントロール ");?>
phproogle:: maptype phproogle ::maptype
これにより、マップタイプを4つのオプションのいずれかのいずれかに設定します。 * 衛星 * ハイブリッド混合
* 物理物理

mapType = "normal" ?>
phproogle::mapCenter

T これは分区内に配置されます。 値は、地図の中心の緯度と経度を含むシーケンスです。

$map->mapCenter = array(-33.862828, 151.216974); 1 $map->mapCenter = array(-33.862828, 151.216974); 1
phproogle::mapZoom phproogle::mapZoom
これにより、マップのズーム レベルが設定されます。 値 0 は最も広いズーム レベルであり、世界全体が表示されます。 19日が最高ズームですが建物も映ります。各ズーム レベルごとにズームが 2 倍になります。 12. デフォルト値は 12 です。

phproogle::addMarker() phproogle::addMarker()

この関数は、地図上にマーカーを作成して配置するために使用されます。 この関数は、地図上にマーカーを作成して配置するために使用されます。 addMarker メソッドは 3 つの引数を受け取ります。 addMarker argS には 3 つのメソッドがあります。

* float $latitude float $latitude
* float $longitude float $longitude

* string $html string$ HTML


float $latitude Inside。
phproogle::addMarkerAddress() phproogle::addMarkerAddress()
このメソッドは phproogle::addMarker() に似ており、地図上にマーカーを配置します。 ただし、このメソッドでは、フラグを配置するために経度と緯度を受け入れるのではなく、2 つの値が必要です。

to to to パリフランスの 「out's' out out out off out out out out out out out out out out out out out out out out off' back to to twp th-w's th' w-」

バルーン。再び HTML パラメータで、テキストまたは HTML がメッセージ バルーン内に配置されます。

phproogle::mapDivID phproogle::mapDivID

設定すると、マップが存在するグループ ID が設定されます。デフォルト値は "map" です
phproogle::mapWidth phproogle::mapWidth
名前が示すように、これは設定されますマップが存在する div の幅。デフォルトの幅は 350 ピクセルです。

phproogle::mapHeight phproogle::mapHeight

これは、マップが存在するパーティションの高さを設定します。デフォルト値は 300 ピクセルです。
phproogle::googleJS() phproogle::googleJS()
このメソッドは、ファイル ヘッダーで使用される JavaScript 文字列を返します。ほとんどの場合、Google API キーを使用して接続文字列を表示します。

phproogle::drawMap() phproogle::drawMap()

このメソッドは、JavaScript で作成された地図そのものを返します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444981.html技術記事 php google api インターフェイス プログラム php google api インターフェイス プログラム これは、Google マップを生成するための完全に機能的なクラスです。 複数のタイプのカスタマイズが可能で、ユーザーは数分以内にすべてをすばやく実装できます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート