Archive for 3月, 2013



26
3月

2つのマジですかー


PHP、5.3 系のサポート終了が迫るも移行進まず

今月末でサポート終了だったなんて知らなかったワー

家のサーバのPHPも5.4に移行しないとなー

livedoorメールなど9サービスをNHN Japanが提供終了へ

スパムちゃんぷるー終わるのかー

SPAM-BYEBYEのデフォルトのDNSBLから消さないとなぁ・・・

17
3月

googlemap api v3のメモ


約2週間ぶりの書き込み・・・

ここ2週間、件のAPIを使った仕事をやっていたので備忘録。

マップのロード

var option = { //ズームレベルを5に zoom: 5, //座標とりあえず日本地図の中央あたりに設定 center: new google.maps.LatLng(36.6,139), mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"), option);

ズームが変更されたり、ドラッグされたりしたときのイベント

var zoomChanged = false; google.maps.event.addListener(map, 'dragend', function() { zoomChanged = true; }); google.maps.event.addListener(map, 'zoom_changed', function() { zoomChanged = true; }); google.maps.event.addListener(map, 'bounds_changed', function() { if (zoomChanged) { zoomChanged = false; //なんかの処理 hogehoge(); } });

マップにマーカーを設置

var point = getPoint(latitude, longitude); var marker = new google.maps.Marker( { position: point, map: map, title: 'ほげほげ', zIndex: -1 }); //経度緯度を設定 function getPoint(latitude, longitude) { return new google.maps.LatLng(latitude, longitude); }

マーカーにInfoWIndowを設定

var content = '<div>hogehoge</div>'; //disableAutoPan:trueでInfoWindowが全て表示さるための移動を抑制する var infowindow = new google.maps.InfoWindow({content: content, disableAutoPan: true}); //InfoWindowを開く infowindow.open(map, marker);

InfoWindowを閉じる

infowindow.close();

マーカーに3段階の同心円を追加

circle1 = new google.maps.Circle( { fillColor: '#bcff02', fillOpacity: 0.5, clickable: false, strokeWeight: 1, strokeColor: '#bcff02', strokeOpacity:1, radius: 30000, visible: true }); circle2 = new google.maps.Circle( { fillColor: '#ffff00', fillOpacity: 0.4, clickable: false, strokeWeight: 1, strokeColor: '#ffff00', strokeOpacity:10, radius: 20000, visible: true }); circle3 = new google.maps.Circle( { fillColor: '#c40026', fillOpacity: 0.3, clickable: false, strokeWeight: 1, strokeColor: '#c40026', strokeOpacity:10, radius: 5000, visible: true }); //マーカーに同心円をセット circle1.bindTo('center', marker, 'position'); circle2.bindTo('center', marker, 'position'); circle3.bindTo('center', marker, 'position'); //同心円を表示 circle1.setMap(map); circle2.setMap(map); circle3.setMap(map);

同心円を削除

circle1.setMap(null); circle2.setMap(null); circle3.setMap(null);

マーカークリック時のイベント

google.maps.event.addListener(marker, "click", function() { hogehoge(); });

InfoWindowの「×」が押された時のイベント

google.maps.event.addListener(infowindow, 'closeclick', function() { hogehoge(); });

マーカーの削除

marker.setMap(null);

ルート検索

var latitude = marker.getPosition().lat(); var longitude = marker.getPosition().lng(); new google.maps.DirectionsService().route( { origin: start, destination: getPoint(latitude, longitude), travelMode: google.maps.DirectionsTravelMode.WALKING }, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directions = new google.maps.DirectionsRenderer({map: map}); directions.setDirections(result); } });

表示領域の左上と右下の経度緯度を取得

var latlngBounds = map.getBounds(); var swLatlng = latlngBounds.getSouthWest(); var swlat = swLatlng.lat(); var swlng = swLatlng.lng(); var neLatlng = latlngBounds.getNorthEast(); var nelat = neLatlng.lat(); var nelng = neLatlng.lng();

MySQLで緯度経度による範囲検索をする

CREATE TABLE hogehoge ( name VARCHAR(64) NOT NULL COMMENT '名称', address VARCHAR(64) NOT NULL COMMENT '住所', latitude VARCHAR(16) COMMENT '緯度', longitude VARCHAR(16) COMMENT '経度', latlon GEOMETRY COMMENT '検索用緯度経度', ) default character set 'utf8' ENGINE=InnoDB;

INSERT INTO hogehoge(name, address, longitude, latitude, latlon) VALUES ('東京駅', '東京都千代田区丸の内一丁目', 139.7661, 35.6815, GeomFromText('POINT(139.7661 35.6815)');

SELECT name, address, latitude, longitude FROM hogehoge WHERE MBRContains(GeomFromText('LINESTRING(139.492473 35.438256, 139.931927 35.795499)'), latlon);

2
3月

メタルスライムキーボードが素敵


メタルスライムキーボード出現、着脱式のフィギュアも並べられる。

実用性はともかく、カワイイのでネタとして欲しい!

now loading...