1

Google Maps JS API v3-ジオロケーションを備えたシンプルなマルチマーカー
ありがとうございますが、私は以下のコードで管理しています。それを改善するために自由に落ちました!
1パート-クリーンな変数

var LocationCenter = null;
var map = null;
var approxCircle = null;
var pinCircle = null;
var marker = null;

2パート-変数で場所を定義する

var locations = [ 
  ['Bondi Beach', -33.890542, 151.274856, 4], 
  ['Coogee Beach', -33.923036, 151.259052, 5], 
  ['Cronulla Beach', -34.028249, 151.157507, 3], 
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
  ['Maroubra Beach', -33.950198, 151.259302, 1] 
];  

3パート-初期化機能

function Newinitialize(lat,lng) {
    LocationCenter = new google.maps.LatLng(lat,lng);
    var myOptions = {
        zoom: 14,
        center: LocationCenter,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
map = new google.maps.Map(document.getElementById("map_canvasRoast"), myOptions);

marker = new google.maps.Marker({
    position: LocationCenter,
    map: map,
    animation: google.maps.Animation.DROP
    });

approxCircle = {
  strokeColor: "#008595",
  strokeOpacity: 0.8,
  strokeWeight: 2,
  fillColor: "#008595",
  fillOpacity: 0.25,
  map: map,
  center: LocationCenter,
  radius: 50,
  clickable : false 
};

pinCircle = new google.maps.Circle(approxCircle);
var infowindow = new google.maps.InfoWindow();
var marker, i; 

4パート-場所を設定

for (i = 0; i < locations.length; i++) {   
  marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
    map: map 
  }); 

  google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
    } 
  })(marker, i)); 
}   

};

$('.goMap').live('click', function() {
    if(navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position){
        Newinitialize(position.coords.latitude,position.coords.longitude);
    });
    }else{
        Newinitialize(52.636161,-1.133065);
    }
});

これでページが読み込まれ、ジオロケーションは正常に機能しています。

4

2 に答える 2

0

showPosition次のように、関数内に Google マップをセットアップします。

var map;
function showPosition(position) {
  var latlon=position.coords.latitude+","+position.coords.longitude;

  x.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude;    

  map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
  });
}

これにより、Google マップを初期化する前に座標を使用できるようになります。それ以外の場合は、関数内でマップ座標を更新できますshowPosition(それを行う正確なコードはわかりません)。

于 2012-10-05T16:13:25.280 に答える
0

マップの中心をユーザーの現在の場所に再設定する方法は次のとおりです。

function showPosition(position)
{
  map.setCenter(new google.maps.LatLng(positions.coords.latitude,
      position.coords.longitude));
}

これにより、ユーザーの場所を受け取る前にマップを作成できます。

于 2012-10-06T02:23:06.453 に答える