Hatena::Groupadmire

開発ネタ物置 このページをアンテナに追加 RSSフィード

2008-05-22

[][][]Google MAPS API+PHP4で緯度経度取得 17:27 Google MAPS API+PHP4で緯度経度取得 - 開発ネタ物置 を含むブックマーク

include_once('./xml.php');

function getLatLng($address){
	
	$api_key = '(取得したapikey)';
	$api_baseuri = 'http://maps.google.com/maps/geo?key=' . $api_key . '&output=xml&ie=UTF8&q=';
	$api_uri = $api_baseuri.urlencode($address);

	$apistr = file_get_contents($api_uri);
	$xml_data = XML_unserialize($apistr);

	$res = $xml_data['kml']['Response'];
	$code = $res['Status']['code'];
	//正常に返された場合
	if($code == '200'){
		$coordinates = explode(',',$res['Placemark']['Point']['coordinates']);
	}else{
		$coordinates = array();
	}

	return $coordinates;
}

// 呼び出し先
$address = '仙台市泉区七北田字柳78';
list($lng,$lat) = getLatLng($address);

xml.php はこちらから取得 http://keithdevens.com/software/phpxml

スクリプトファイルUTF-8で作成。

プロキシ経由じゃなくて、さらにサーバがallow_url_open を許可していれば、

たぶんこれでいくじゃないかな(セルじおさん風に)

2006-05-24

[][][][]XML_Unserializer 16:05 XML_Unserializer - 開発ネタ物置 を含むブックマーク

livedoor weather hacks*1の地点一覧を解析するのに。

PEAR package:http://pear.php.net/package/XML_Serializer

日本語ドキュメントhttp://pear.php.net/manual/ja/package.xml.xml-serializer.php

require_once '/PEAR/XML/Unserializer.php';

$url = "http://weather.livedoor.com/forecast/rss/forecastmap.xml";
$xml = file_get_contents($url);

$Unserializer =& new XML_Unserializer();
$Unserializer->setOption('parseAttributes', TRUE);
$Unserializer->setOption('encoding', 'UTF-8');
$status = $Unserializer->unserialize($xml);
if (PEAR::isError($status)) { die($status->getMessage()); }
$ary = $Unserializer->getUnserializedData();
print_r($ary);

これだけでOK?

しかし、返される配列(ary)が深すぎてまた何とも面倒…