2016-08-04 137 views
0

我最近開發了一個網站,但找不到位置後,我無法在Google地圖上顯示當前位置標記。如何在Google地圖上添加當前位置標記

你可以有https://www.storra.com/listings/

我添加了一個自定義的監聽器,基於Listify自動定位功能function.php但沒能標記添加到地圖一看。其代碼如下,

function listify_custom_autolocation() { 
 
\t if (! (is_front_page() || listify_is_job_manager_archive())) { 
 
\t \t return; 
 
\t } 
 
?> 
 
\t <script> 
 
\t \t var triggered = false; 
 
\t \t jQuery(document).on('facetwp-loaded', function() { 
 
\t \t \t if (! triggered) { 
 
\t \t \t \t var locate = jQuery('.locate-me'); 
 
\t \t \t \t locate.trigger('click'); 
 
       var marker = new google.maps.Marker({ 
 
       map: map, 
 
       position: new google.maps.LatLng(
 
        parseFloat(coords[0]), 
 
        parseFloat(coords[1]) 
 
       ), 
 
       info: new google.maps.InfoWindow({ 
 
        content: val.title + val.distance 
 
       }) 
 
      }); 
 
\t \t \t } 
 
\t \t \t triggered = true; 
 
\t \t }); 
 
\t </script> 
 
<?php 
 
} 
 
add_action('wp_footer', 'listify_custom_autolocation', 9999);

將非常感激,如果有人能指導我。 謝謝!

+1

到底是不工作的。除「jQuery未定義」之外的任何錯誤消息?您不會顯示相關代碼。您的地圖實例是否可從外部訪問? 'coords [0]'的輸出是什麼? –

+0

@elsololobo相關的代碼被粘貼在那裏。感謝您試圖提供幫助。 –

回答

3

你可以使用這個爲你定位功能:

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var pos = { 
      lat: position.coords.latitude, 
      lng: position.coords.longitude 
     }; 
     var marker = new google.maps.Marker({ 
      position: pos, 
      map: map, 
      title: 'Your position' 
     }); 
     map.setCenter(pos); 
    }, function() { 
     //handle location error (i.e. if user disallowed location access manually) 
    }); 
} else { 
    // Browser doesn't support Geolocation 
} 
0

以下是在後端的相關代碼。我試着添加@mxlse給出的代碼,但似乎沒有工作。

AutoLocateView.prototype.find = function() { 
 
     var cv, error, filters, success; 
 
     cv = this.collectionView; 
 
     filters = this.filters; 
 
     if (!navigator.geolocation) { 
 
      return; 
 
     } 
 
     success = function(position) { 
 
      var lat, lng; 
 
      lat = position.coords.latitude; 
 
      lng = position.coords.longitude; 
 
      cv.set({ 
 
      'lat': lat, 
 
      'lng': lng 
 
      }); 
 
      return $('.locate-me').removeClass('loading'); 
 
     }; 
 
     error = function() { 
 
      $('.locate-me').removeClass('loading'); 
 
      return filters.startup(); 
 
     }; 
 
     navigator.geolocation.getCurrentPosition(success, error); 
 
     return this; 
 
     };

相關問題