이것은 새로운 방향으로 도전하기 위해 며칠 전에 시도한 post의 후속 조치입니다. 내 목표는 마커를 클릭 할 때 폴리 라인의 원점 위도/경도가 해당 마커와 동일한 위도/경도가되도록하는 것입니다. 내가 마주하고있는 속임수는 라인이 마커의 좌표를 사용하도록 클릭이 존재하는 마커의 for 루프에 라인 생성을 넣을 위치입니다. 이 함수 밖에서 lat/lng 변수를 선언하기 때문에, 줄의 기본값은 for 루프 내 값이 아닌 var oLat = 10.1 var oLng = 22.1
입니다. 나는 oLng = parseFloat(this.position.lng().toFixed(4))
후 내 라인 코드 (아래) 배치 시도했지만 한클릭하면 마커에서 폴리 라인 그리기 Google지도 API v3
for (var i in points) {
var p = points[i];
var latlng = new google.maps.LatLng(p[1], p[2]);
var marker = new google.maps.Marker({
position: latlng,
icon: points[i][3],
zIndex: p[5],
title: p[0]
});
overviewMarkers.push(marker);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(points[i][6] + '<div id="infopanel">'+
'<input onclick="addLine();" type=button value="Show Routes">'+
'<input onclick="removeLine();" type=button value="Remove Routes"></div>');
infowindow.open(map, marker)
oLat = parseFloat(this.position.lat().toFixed(4))
oLng = parseFloat(this.position.lng().toFixed(4))
}
})(marker, i));
}//end for loop
다음 내 라인이 늘 그릴 : 여기에 루프 내 현재이다. 라인 코드를 전체 함수 외부에두면 기본값으로 그려집니다. 라인 생성 코드는 (난 그냥 내 var에 온 클릭 값 캡처 것이라는 점을 확인하는 경고를 추가) :
var arrayLine=[]
var originPoint = [new google.maps.LatLng(oLat,oLng)];
var destPoint = [new google.maps.LatLng(51.9279723,4.4904063),
new google.maps.LatLng(40.136482, -73.831299),
new google.maps.LatLng(34.0204989,-118.4117325)
];
var lineSymbol = {
path: google.maps.SymbolPath.FORWARD_OPEN_ARROW
};
for (var d in destPoint) {
var t = destPoint[d];
var linePath = new google.maps.Polyline({
path: [originPoint[0],[t][0]],
strokeColor: '#4A484D',
strokeOpacity: 1.0,
strokeWeight: 2,
geodesic: true,
icons: [{
icon: lineSymbol,
offset: '100%',
repeat: '60px'
}]
});
arrayLine.push(linePath)
function setLines(map) {
for (var i = 0; i < arrayLine.length; i++) {
arrayLine[i].setMap(map);
}
}
}
function addLine() {
setLines(map);
alert(parseFloat(oLat));
}
나는 구글이 제공하는 complex polyine example 보는 시도를하지만, 그 다음에 좀 더 단순화 된 것 같다 내가 뭘하려고하는지.
당신의 자바 스크립트 오류를 수정하십시오. (http://jsfiddle.net/x5fajLgn/2/) – geocodezip