2013-04-11 4 views
3

Google Earth API 용 검색 창을 만들려고 시도했습니다. KMLFile을 구문 분석하고 GE API에서로드 할 수 있으며 이제 KML에 의해로드 된 Placemarker 이름으로 검색을 삽입해야합니다. 긴 위도 &를 사용Google 어스 API KML 파일의 검색 문자열 값 위치 아이콘?

코드

var lookAt = ge.createLookAt(''); 
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0); 
ge.getView().setAbstractView(lookAt); 

장소 표시 이름 (문자열 값) 대신 LONG, LAT를 사용하는 검색을 사용하여 LookAt에 대한 가능성이 있습니까?

답변

0

예 설정에 따라 몇 가지 방법이 있습니다.

한 가지 일반적인 방법은 각 장소 표시에 고유 한 ID를 부여한 다음 해당 ID를 사용하여 보게하는 것입니다.

예를 들어, 다음과 같은 KML 장소를하고 URL을 http://localhost/foo.kml

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
    <Placemark id="myPlacemark"> 
    <name>Myplacemark</name> 
    <Point> 
     <coordinates>-122.0822035425683,37.42228990140251,0</coordinates> 
    </Point> 
    </Placemark> 
</kml> 

에서 API에 넣었는지 당신은 다음과 같이 장소 표시 myPlacemark '볼'수 상상한다.

ID가있는 KML에서로드 된 모든 지점 아이콘을 보려면 올바른 ID를 전달하기 만하면됩니다.

var myLookAt = function(id) { 
    var placemark = ge.getElementByUrl(id); 
    if('getGeometry' in placemark && 
    placemark.getGeometry().getType() == 'KmlPoint') { 
    var point = placemark.getGeometry(); 
    var lookAt = ge.createLookAt(''); 
    lookAt.set(point.getLatitude(), point.getLongitude(), 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0); 
    ge.getView().setAbstractView(lookAt); 
    } 
}; 

// useage 
myLookAt('http://localhost/foo.kml#myPlacemark'); 

당신은 분명히 lookAtcamera 요소를 찾기 위해 myLookAt 기능을 변경할 수도 있고,뿐만 아니라 다른 유형의 객체 처리 할 수 ​​- 등 여러 형상,

등을