OSDN Git Service

Geopost javascript function for iPhone (or other Geolocation and Google map API capab...
authorishikawa <ishikawa@180c8125-5b33-4295-ad04-72a68a15b4cc>
Tue, 14 Jul 2009 17:39:14 +0000 (17:39 +0000)
committerishikawa <ishikawa@180c8125-5b33-4295-ad04-72a68a15b4cc>
Tue, 14 Jul 2009 17:39:14 +0000 (17:39 +0000)
lib/public/geopost-keitairc.js [new file with mode: 0644]

diff --git a/lib/public/geopost-keitairc.js b/lib/public/geopost-keitairc.js
new file mode 100644 (file)
index 0000000..e568550
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+keitairc_post_url: 発言POST先のURL
+keitairc_stamp: 発言のタイムスタンプ
+keitairc_channel: チャネル名
+
+をあらかじめ外部でセットしておく必要があります。
+*/
+addEventListener("load", function(event) {
+       navigator.geolocation.getCurrentPosition(function (position) {
+               var latLng = new google.maps.LatLng(position.coords.latitude,
+                                               position.coords.longitude);
+
+               var map = new google.maps.Map(document.getElementById("map_canvas"),
+                                             {zoom: 15,
+                                              mapTypeId: google.maps.MapTypeId.ROADMAP,
+                                              center: latLng});
+
+               var marker = new google.maps.Marker({map: map,
+                                                    position: latLng});
+
+               var geocoder = new google.maps.Geocoder();
+               geocoder.geocode({'latLng': latLng}, function(results, status) {
+                       if (status == google.maps.GeocoderStatus.OK) {
+                               var Address = '現在の地名が分かりません: 北緯 = ' + position.coords.latitude + ', 東経 = ' + position.coords.longitude;
+                               for(var i = 1; i < results.length; i++){
+                                       if (results[i].types.length >= 2 && results[i].types[1] == "political") {
+                                               Address = results[i].formatted_address.replace(/^日本/, '');
+                                               break;
+                                       }
+                               }
+
+                               var msg;
+                               msg = '<span style="font-size:80%">';
+                               msg += '<strong>現在の場所:</strong><br />';
+                               msg += Address;
+                               msg += '</span><hr />'
+                               msg += '<form action="'+keitairc_post_url+'" method="post">';
+                               msg += '<input type="hidden" name="m" value="現在位置: L:'+ Address + '" />';
+                               msg += '<input type="hidden" name="stamp" value="'+keitairc_stamp+'" />';
+                               msg += '<input type="submit" value="'+keitairc_channel+'へ この位置情報を発言する">';
+                               msg += '<form>';
+                               var info = new google.maps.InfoWindow({content: msg});
+                               info.open(map, marker);
+                       } else {
+                               alert("地名の変換に失敗しました: エラーコード = " + status);
+                       }
+               });
+       });
+})