1
Bing 맵을 사용하여 맵에 마커를 표시하고 있습니다.Bing 맵 내에서 마커 표시 다각형
이제 사용자가 선택한 마커 주위에 원을 그려서 킬로미터 단위로 원의 반지름을 지정할 수 있도록 기능을 추가하고 있습니다.
원형 (다각형)에 해당 원의 위도/경도 경계 내에 마커가 포함되고 원 밖에있는 마커가 사라지길 원합니다.
어떻게해야합니까?
Bing 맵을 사용하여 맵에 마커를 표시하고 있습니다.Bing 맵 내에서 마커 표시 다각형
이제 사용자가 선택한 마커 주위에 원을 그려서 킬로미터 단위로 원의 반지름을 지정할 수 있도록 기능을 추가하고 있습니다.
원형 (다각형)에 해당 원의 위도/경도 경계 내에 마커가 포함되고 원 밖에있는 마커가 사라지길 원합니다.
어떻게해야합니까?
코드를 입력하지 않았습니다.
그러나 저는 비슷한 프로젝트에 관여 했으므로 당신이 말하는 것에 대해 생각해 봤습니다. 맞춤형 다각형을 찾고 계시다면 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);
};
나는 오랜만에 다시 SO에 나는 도움이 될 것입니다. 나는 내 문제를 해결했다. 해결책은 당신이 제공 한 것과 비슷했습니다. –