Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. <html>
  2. <head>
  3. <meta charset="utf-8" />
  4. <meta name="viewport" content="width=device-width,initial-scale=1">
  5. <script src="https://maps.googleapis.com/maps/api/js?key=Yourkey"></script>
  6. <link rel="stylesheet"href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css" />
  7. <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
  8. <script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
  9. <script>
  10.  
  11. var gmap = null;
  12. $(document).on('pageshow','#map', drawMap );
  13.  
  14. function drawMap(){
  15. if (gmap == null){
  16. initialize(data,map); // 地図の初期化
  17. }
  18. }
  19.  
  20. $(function(){
  21. //JSONファイル読み込み開始
  22. $.ajax({
  23. type: "POST",
  24. url:"json.php",
  25. cache:false,
  26. dataType:"json",
  27. success:function(json){
  28. var data=jsonRequest(json);
  29. initialize(data,map);
  30. }
  31. });
  32. });
  33.  
  34. var currentInfoWindow = null;
  35.  
  36. // JSONファイル読み込みマーカーへデータ格納
  37. function jsonRequest(json){
  38. var data=[];
  39. if(json.Marker){
  40. var n=json.Marker.length;
  41. for(var i=0;i<n;i++){
  42. data.push(json.Marker[i]);
  43. }
  44. }
  45. return data;
  46. }
  47. //マーカー生成
  48. function createClickCallback(marker, infoWindow){
  49. return function(){
  50. if (currentInfoWindow){
  51. currentInfoWindow.close();
  52. }
  53. infoWindow.open(marker.getMap(), marker);
  54. currentInfoWindow = infoWindow;
  55. };
  56. }
  57.  
  58. //現在地取得
  59.  
  60. navigator.geolocation.getCurrentPosition(succesCallback);
  61. function succesCallback(pos){
  62. var Position_latitude = pos.coords.latitude;
  63. var Position_longitude = pos.coords.longitude;
  64. //console.log(Position_latitude,Position_longitude);
  65. geo_location(Position_latitude,Position_longitude);
  66. }
  67.  
  68. function geo_location(x,y){
  69. var bodyHeight = $('body').height();
  70. $("#map").css('height',bodyHeight);
  71. var opts={
  72. zoom: 16,
  73. center: new google.maps.LatLng(x,y),
  74. mapTypeId: google.maps.MapTypeId.ROADMAP
  75. };
  76. var map = new google.maps.Map(document.getElementById("map"),opts);
  77. }
  78. //地図生成
  79. function initialize(data,map){
  80.  
  81. var i=data.length;
  82. while(i-- >0){
  83. var dat = data[i];
  84. var marker=new google.maps.Marker({
  85. position:new google.maps.LatLng(dat.lat,dat.lng),
  86. map:map
  87. });
  88.  
  89.  
  90. var infoWindow = new google.maps.InfoWindow({
  91. maxWidth: 250,
  92. content:'<div class="infoWindow">'+
  93. '<h2>'+dat.title+'</h2>'+
  94. '<span>'+dat.comment+'</span>'+
  95. '</div>'
  96. });
  97. google.maps.event.addListener(marker, 'click', createClickCallback(marker, infoWindow));
  98.  
  99. }
  100. }
  101.  
  102. </script>
  103. </head>
  104.  
  105. <body>
  106. <div data-role="page" id="top">
  107. <div data-role="header">
  108. <h1>DEMO</h1>
  109. </div>
  110. <div role="main" class="ui-content">
  111. <div id="map"></div>
  112. </div>
  113.  
  114. <div data-role="footer">
  115. <div data-role="navbar" data-iconpos="bottom" class="navi_bar">
  116. <ul>
  117. <li class="ui-block-a"><a href="index.html" rel="external" data-icon="home" class="ui-btn-active ui-state-persist">Map</a></li>
  118. <li class="ui-block-b"><a href="sentpage.html" rel="external" data-icon="info">Info</a></li>
  119. </ul>
  120. </div>
  121. </div>
  122. </div>
  123.  
  124. </body>
  125.  
  126. <style type="text/css">
  127. #map {
  128. width: 100%;
  129. height: auto;
  130. }
  131.  
  132. #infoWindow{
  133. width: 100%;
  134. height: auto;
  135. }
  136. </style>
  137.  
  138. <!DOCTYPE html>
  139. <html>
  140. <head>
  141. <title>Simple Map</title>
  142. <meta name="viewport" content="initial-scale=1.0">
  143. <meta charset="utf-8">
  144. <style>
  145. html, body {
  146. height: 100%;
  147. margin: 0;
  148. padding: 0;
  149. }
  150. #map {
  151. height: 100%;
  152. }
  153. </style>
  154. <script src="https://maps.googleapis.com/maps/api/js" async></script>
  155. <script>
  156. window.addEventListener("load", function() {
  157. var currentInfoWindow = null;
  158.  
  159. // JSONファイル読み込みマーカーへデータ格納
  160. function jsonRequest(json){
  161. var data=[];
  162. if(json.Marker){
  163. var n=json.Marker.length;
  164. for(var i=0;i<n;i++){
  165. data.push(json.Marker[i]);
  166. }
  167. }
  168. return data;
  169. }
  170. //マーカー生成
  171. function createClickCallback(marker, infoWindow){
  172. return function() {
  173. if (currentInfoWindow){
  174. currentInfoWindow.close();
  175. }
  176. infoWindow.open(marker.getMap(), marker);
  177.  
  178. currentInfoWindow = infoWindow;
  179. };
  180. }
  181.  
  182. //地図生成
  183. navigator.geolocation.getCurrentPosition(
  184. function geo_location(pos){
  185. var opts={
  186. zoom: 16,
  187. center: new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude),
  188. mapTypeId: google.maps.MapTypeId.ROADMAP
  189. };
  190.  
  191. var map = new google.maps.Map(document.getElementById("map"),opts);
  192.  
  193. initialize(map, [
  194. {
  195. lat: pos.coords.latitude - pos.coords.latitude/100000,
  196. lng: pos.coords.longitude - pos.coords.latitude/100000,
  197. title: "marker 1",
  198. comment: "marker 1"
  199. },
  200. {
  201. lat: pos.coords.latitude + pos.coords.latitude/100000,
  202. lng: pos.coords.longitude + pos.coords.longitude/100000,
  203. title: "marker 2",
  204. comment: "marker 2"
  205. }
  206. ])
  207. });
  208.  
  209. function initialize(map, data){
  210. var i=data.length;
  211. while(i-- >0){
  212. var dat = data[i];
  213. var marker=new google.maps.Marker({
  214. position:new google.maps.LatLng(dat.lat,dat.lng),
  215. map: map
  216. });
  217.  
  218.  
  219. var infoWindow = new google.maps.InfoWindow({
  220. maxWidth: 250,
  221. content:'<div class="infoWindow">'+
  222. '<h2>'+dat.title+'</h2>'+
  223. '<span>'+dat.comment+'</span>'+
  224. '</div>'
  225. });
  226. google.maps.event.addListener(marker, 'click', createClickCallback(marker, infoWindow));
  227. }
  228.  
  229. }
  230. }, false);
  231. </script>
  232. </head>
  233.  
  234. <body>
  235. <div id="map"></div>
  236. </body>
  237. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement