2017-09-16 19 views
0

GoogleマップJavascript APIによってユーザーの場所が決まるとマーカーが表示されるようにしようとしています。 HTMLを開くと、ユーザーの場所をプルアップすることができますが、ユーザーの所在地を示すマーカーはありません。私は3つのジムの位置を示すいくつかのマーカーを持っていますが、私は彼らが3つのジムに関連している場所をユーザーに示したいと思います。Google Maps JavaScript APIジオロケーションマーカー

"var markers ="配列にユーザーの場所を追加する必要がありますか?または、「infoWindow.setPosition(pos);」の後にいくつかのタイプのコードを追加する必要がありますか?ここまでは私のコードです。

<script> 
    var map, infoWindow; 
    function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
     center: {lat:34.0522,lng:-118.2437}, 
     zoom: 15, 
     disableDefaultUI: true, 
     gestureHandling: 'cooperative', 
    }); 
    infoWindow = new google.maps.InfoWindow; 

    if (navigator.geolocation) { 

    navigator.geolocation.getCurrentPosition(function(position) { 
     var pos = { 
     lat: position.coords.latitude, 
     lng: position.coords.longitude 
     }; 

     infoWindow.setPosition(pos); 

    }, function() { 
     handleLocationError(true, infoWindow, map.getCenter()); 
    }); 
    } else { 
    handleLocationError(false, infoWindow, map.getCenter()); 
} 

function handleLocationError(browserHasGeolocation, infoWindow, pos) { 
    infoWindow.setPosition(pos); 
    infoWindow.setContent(browserHasGeolocation ? 
         'Error: The Geolocation service failed.' : 
         'Error: Your browser doesn\'t support geolocation.'); 
    infoWindow.open(map); } 

    var markers = [ 
        { 
        coords:{lat:34.051937,lng:-118.472118}, 
        iconImage:'GymBoxNBurn.png', 
        content:'Box N Burn Boxing Gym' 
        }, 
        { 
        coords:{lat:33.938454,lng:-118.277857}, 
        iconImage:'GymBroadwayBoxing.png', 
        content:'Broadway Boxing Gym' 
        }, 
        { 
        coords:{lat:34.015644,lng:-118.487396}, 
        iconImage:'GymBoxNBurn.png', 
        content:'Box N Burn Boxing Gym' 
        } 
       ]; 


    for(var i = 0;i < markers.length;i++){ 
     addMarker(markers[i]); 
      } 

      function addMarker(props){ 
       var marker = new google.maps.Marker({ 
       position:props.coords, 
       map:map, 
       }); 


       if(props.iconImage){ 
       marker.setIcon(props.iconImage); 
       } 

       if(props.content){ 
       var infoWindow = new google.maps.InfoWindow({ 
        content:props.content 
        }); 

        } 
       } 
       }; 

+0

が重複する可能性[Googleマップでユーザの現在位置をハイライト表示するには?](https://stackoverflow.com/questions/12175931/how-to-highlight-a-users-current-location-in -google-maps) – geocodezip

+0

同様に、私の問題は、マップ上にすでに存在するマーカーにIN ADDITIONというマーカーを作成しようとしていることです。したがって、配列内の3つの位置の位置を表示しながら、ユーザーの位置を示すために、varマーカーArrayまたは他の場所にコードが必要です。 –

+0

[Googleマップでユーザーの現在地を強調する方法は?](https://stackoverflow.com/questions/12175931/how-to-highlight-a-users-current-location-in-google-maps) – RobC

答えて

0

これを試してみてください。注意:あなたの位置を決定するのはGoogleマップではありません。私は標準のHTML/javascript機能を使っています。あなたのウェブブラウザはそれを読みます。

... 
navigator.geolocation.getCurrentPosition(function(position) { 
    var pos = { 
    lat: position.coords.latitude, 
    lng: position.coords.longitude 
    }; 
    infoWindow.setPosition(pos); 
    addMarker({ 
    coords: pos, 
    content:'YOU ARE HERE' 
    }); 
    // if you want this, center the map. Else remove next line 
    map.setCenter(pos);   
}, 
... 
+0

チャームのように働いて、それを感謝します。 –

関連する問題