function custom_marker(map, lat, lng) {
this.lat_ = lat;
this.lng_ = lng;
this.setMap(map);
}
// OverlayView を継承
custom_marker.prototype = new google.maps.OverlayView();
// draw 処理
custom_marker.prototype.draw = function() {
if (!this.div_) {
// 出力したい要素を生成
this.div_ = document.createElement("div");
this.div_.style.position = "absolute";
this.div_.innerHTML = "<img src='images/custom_marker.png' alt='' />";
var panes = this.getPanes();
panes.overlayLayer.appendChild(this.div_);
}
// 緯度経度を Pixel に変換
var point = this.getProjection().fromLatLngToDivPixel(
new google.maps.LatLng(this.lat_, this.lng_)
);
// 100px ずらす
this.div_.style.left = point.x - 100 + 'px';
this.div_.style.top = point.y - 100 + 'px';
}
// remove 処理
custom_marker.prototype.remove = function() {
if (this.div_) {
this.div_.parentNode.removeChild(this.div_);
this.div_ = null;
}
}
var cm = new custom_marker(map, 35.689487, 139.691706);
2013年4月12日金曜日
Google Map で指定した緯度経度からずらしてアイコンを表示したい
カスタムOverlayViewを使うと出来る。
ラベル:
google,
javascript,
map
PHPとVB.NETでデータを加工してやり取りする
生データが嫌だけどお手軽にやりたいならビット反転して送るとか。
PHP側
VB.NET側
PHP側
$filename = "hoge.txt";
if ($handle = fopen($filename, "r")) {
while (!feof($handle)) {
$s = fread($handle, 1024);
echo ~$s;
}
}
fclose($handle);
VB.NET側
Dim filename As String = "hoge.txt";
Dim contents As String = "";
Dim bs(1024 - 1) As Byte
Dim readSize As Integer
Dim fs As New System.IO.FileStream(filename, IO.FileMode.Open, IO.FileAccess.Read)
While True
readSize = fs.Read(bs, 0, bs.Length)
If readSize = 0 Then
Exit While
End If
For i As Integer = 0 To bs.Length
bs(i) = Not bs(i)
Next
contents += System.Text.Encoding.UTF8.GetString(bs)
End While
fs.Close()
PHPでマルチバイトを含んだディレクトリのリストアップ
PHPでディレクトリをリストアップして、aタグでパラメータとして渡せるようにしてみる。
<?php
$dir = "/hoge/fuga";
if (isset($_REQUEST["dir"]) && $_REQUEST["dir"]) {
$dir = mb_convert_encoding($_REQUEST["dir"], "SJIS", "UTF-8");
}
$html = "";
if ($dh = opendir($dir)) {
while ($entry = readdir($dh)) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $entry) && $entry !== "." && $entry !== "..") {
$html .=
"<a href=\"dir.php?dir=" . urlencode(mb_convert_encoding($entry, "UTF-8", "SJIS")) . "\">" .
mb_convert_encoding($entry, , "UTF-8", "SJIS") .
"</a><br />";
}
}
}
?><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php echo $html; ?>
</body>
</html>
HTMLの特定の場所までスクロール
jQuery使うと以下の感じ。
var target = $("#target_element");
if (target) {
var targetOffset = target.offset().top;
$('html,body').animate({scrollTop: targetOffset}, 400);
}
PHPでユーザーエージェント判別
$ua = $_SERVER['HTTP_USER_AGENT'];
switch (true) {
case (preg_match('/iPhone|iPad/', $ua)):
// iOS
break;
case (preg_match('/Android/', $ua)):
// Android
break;
case (preg_match('/MSIE 6/', $ua)):
// IE6
break;
case (preg_match('/MSIE 7/', $ua)):
// IE7
break;
case (preg_match('/MSIE 8/', $ua)):
// IE8
break;
case (preg_match('/MSIE 9/', $ua)):
// IE9
break;
case (preg_match('/Firefox/', $ua)):
// Firefox
break;
case (preg_match('/Chrome/', $ua)):
// Chrome
break;
case (preg_match('/Opera/', $ua)):
// Chrome
break;
case (preg_match("/Safari/", $agent)) && (preg_match("/Win/", $agent)):
// Windows Safari
break;
case (preg_match("/Safari/", $agent)) && (preg_match("/Mac/", $agent)):
// Mac Safari
break;
case ((preg_match("/MSIE/", $agent)) && (preg_match("/Win/", $agent))):
// Windows IE
break;
case ((preg_match("/MSIE/", $agent)) && (preg_match("/Mac/", $agen))):
// Mac IE
break;
default:
// Other
break;
}
登録:
コメント (Atom)