如何在Google地图上添加当前位置标记

时间:2016-08-04 05:30:26

标签: javascript wordpress google-maps google-maps-api-3

我最近开发了一个网站,但在找到该位置后,我无法在Google地图上显示当前位置标记。

您可以查看https://www.storra.com/listings/

我已经基于Listify自动定位功能向function.php添加了一个自定义监听器,但没有设法将标记添加到地图中。代码如下,

function listify_custom_autolocation() {
	if ( ! ( is_front_page() || listify_is_job_manager_archive() ) ) {
		return;
	}
?>
	<script>
		var triggered = false;
		jQuery(document).on( 'facetwp-loaded', function() {
			if ( ! triggered ) {
				var locate = jQuery( '.locate-me' );
				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
                })
          });
			}
			triggered = true;
		});
	</script>
<?php
}
add_action( 'wp_footer', 'listify_custom_autolocation', 9999 );

如果有人可以指导我,我将非常感激。 谢谢!

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

以下是后端的相关代码。我尝试添加@mxlse给出的代码,但似乎也没有用。

&#13;
&#13;
  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;
      };
&#13;
&#13;
&#13;