0

Google 양식을 사용하여 사용자 그룹에서 간단한 (도시, 주) 데이터를 수집 한 다음 결과 스프레드 시트를이 자바 스크립트의 onSubmit을 통해 Google Fusion Table에 연결합니다.자바 스크립트로 위도와 경도를 미세 조정합니다.

http://kh-samples.googlecode.com/svn/trunk/code/appsscript.js

이 퓨전 테이블은 양식 입력의 맵을 생성한다. 정말로 멋진 서비스입니다.

불행히도, 두 명의 사용자가 같은 도시를 입력 한 경우 스크립트로 검색 한 위도와 경도가 인 정확히이므로 동일한 조합으로 상태 조합을 표시 할 수 있습니다.

내 질문 ...

나보다 더 자바 스크립트 턱을 가진 사람이 나에게이 문제를 해결하는 것입니다 코드에 조정을 보여줄 수 있습니까?

합리적인 해결책은 임의의 정수를 생성하는 것입니다 (예 : 0 &). 위도의 0.00X 자리에 해당 숫자를 추가하십시오 (경도에 대해서도 동일하게 적용). 이렇게하면 동일한 도시에 마커를 유지하기에 충분히 큰 변화가 생길 수 있지만 멀리 보이게 배치하면 멀리 볼 수 있습니다. 사전에

이 지오 코딩이 완료되는 장소 (라인 75)처럼 보이는 ...

// If an address column was specified, geocode the value in it. 
    if (addressColumn && column == addressColumn) { 
    var latlng = geocode(value); 
    latlngColumn = latlngColumn.replace(/'/g, "\\\'"); 
    columns.push(latlngColumn); 
    values.push(latlng); 
    } 

감사합니다, 라이언

답변

1

어떻게 말을 마커에 숫자를 넣어 더 나은 것 같다 많은 사람들이 그 도시/주를 선택했습니다. 하나 들어, 제안 된 솔루션은 매우 작은 도시에 잘 적응하지 못할 것입니다. Math.random()01 사이의 임의의 숫자를 생성하는 것을

var originalLongitude = /* from wherever */; 
var originalLatitude = /* from wherever */; 

var shiftedLongitude = originalLongitude + Math.random() * 0.002; 
var shiftedLatitude = originalLatitude + Math.random() * 0.002; 

참고 :

어쨌든, 이것은 당신이 그런 일을 할 거라고 방법이다.

+0

감사 @Domenic지도에 대한 너무 많은

감사합니다, @Domenic. 나는 마커를 변경하는 제안을 좋아하지만 마커는 양식에 제출 된 다른 정보를 포함합니다. 지금 당신의 솔루션을 구현하기 위해 최선을 다할 것입니다. 계속 지켜봐! – Ryan

0

알 수 있습니다.

// If an address column was specified, geocode the value in it. 
    if (addressColumn && column == addressColumn) { 
    var latlng = geocode(value); 

    newString = latlng.split(","); 

    newLat = parseFloat(newString[0]) + Math.random() * 0.002; 
    newLng = parseFloat(newString[1]) + Math.random() * 0.002; 

    var newlatlng = newLat + "," + newLng; 

    latlngColumn = latlngColumn.replace(/'/g, "\\\'"); 
    columns.push(latlngColumn); 
    values.push(newlatlng); 
    }