2013-03-12 7 views
1

Bing 맵을 사용하여 맵에 마커를 표시하고 있습니다.Bing 맵 내에서 마커 표시 다각형

이제 사용자가 선택한 마커 주위에 원을 그려서 킬로미터 단위로 원의 반지름을 지정할 수 있도록 기능을 추가하고 있습니다.

원형 (다각형)에 해당 원의 위도/경도 경계 내에 마커가 포함되고 원 밖에있는 마커가 사라지길 원합니다.

어떻게해야합니까?

답변

0

코드를 입력하지 않았습니다.

그러나 저는 비슷한 프로젝트에 관여 했으므로 당신이 말하는 것에 대해 생각해 봤습니다. 맞춤형 다각형을 찾고 계시다면 link을 살펴볼 수 있습니다.

마커의 x, y 좌표를 사용하고 Javascript를 사용하여지도 주위에 원을 그립니다.

이 JavaScript는

function drawCircle(radius, origin) { 
    var RadPerDeg = Math.PI/180; 
    var earthRadius = 3959; 
    var lat = origin.latitude * RadPerDeg; 
    var lon = origin.longitude * RadPerDeg; 
    var locs = new Array(); 
    var AngDist = parseFloat(radius)/earthRadius; 
    for (x = 0; x <= 360; x++) { //making a 360-sided polygon 
     var pLatitude, pLongitude; 
     // With a nice, flat earth we could just say p2.Longitude = lon * sin(brng) and p2.Latitude = lat * cos(brng) 
     // But it ain't, so we can't. See http://www.movable-type.co.uk/scripts/latlong.html 
     brng = x * RadPerDeg; 
     pLatitude = Math.asin(Math.sin(lat) * Math.cos(AngDist) + Math.cos(lat) * Math.sin(AngDist) * Math.cos(brng)); //still in radians 
     pLongitude = lon + Math.atan2(Math.sin(brng) * Math.sin(AngDist) * Math.cos(lat), Math.cos(AngDist) - Math.sin(lat) * Math.sin(pLatitude)); 
     pLatitude = pLatitude/RadPerDeg; 
     pLongitude = pLongitude/RadPerDeg; 
     locs.push(new MM.Location(pLatitude, pLongitude)); 
    }; 
    circle = new MM.Polyline(locs, { visible: true, strokeThickness: 2, strokeDashArray: "1", strokeColor: new MM.Color(200, 0, 0, 200, 0) }); 
    map.entities.push(circle); 
}; 
+0

나는 오랜만에 다시 SO에 나는 도움이 될 것입니다. 나는 내 문제를 해결했다. 해결책은 당신이 제공 한 것과 비슷했습니다. –