iframe에서 얻은지도 개체를 사용하여 원을 그리려는 시도는 다음과 같습니다. 이하 Google지도를 사용하여 원 그리기 V3
function modificaradio(){
var mapaZonas = geContentWindow(validateParentParentFrame('ifrmMapaZonasSeguras')).mapZone;
geContentWindow(validateParentParentFrame('ifrmMapaZonasSeguras')).geoDragzs.setMap(null);
var centroZonas = geContentWindow(validateParentParentFrame('ifrmMapaZonasSeguras')).newCenter;
geContentWindow(validateParentParentFrame('ifrmMapaZonasSeguras')).geoDragzs = drawCircle(centroZonas,radio, colorContorno, anchoContorno, opacidadContorno, colorRelleno, opacidadRelleno);
geContentWindow(validateParentParentFrame('ifrmMapaZonasSeguras')).geoDragzs.setMap(mapaZonas);
}
는 원
function drawCircle(center, radioCirculo,colorContorno,anchoContorno,opacidadContorno,colorRelleno,opacidadRelleno) {
nodes=40;
//se agrega un porcentaje al radio del circulo para su equivalencia en tamaño con mapInfo
var radioExtra = parseInt(radioCirculo * 0.10);
//el radio de la geocerca (dado en metros), se pasa a kilometros
var radioCirculoTot = (parseInt(radioCirculo) + radioExtra)/1000;
var bounds = new google.maps.LatLngBounds();
var lat1 = new google.maps.LatLng(center.lat() + 0.1, center.lng());
var latConv = google.maps.geometry.spherical.computeDistanceBetween(center, lat1)/100;
var lng2 = new google.maps.LatLng(center.lat(), center.lng() + 0.1);
var lngConv = google.maps.geometry.spherical.computeDistanceBetween(center, lng2)/100;
//Loop
var points = [];
var step = parseInt(360/nodes) || 10;
for (var i = 0; i <= 360; i += step) {
var pint = new google.maps.LatLng(center.lat() + (radioCirculoTot/latConv * Math.cos(i * Math.PI/180)), center.lng() +
(radioCirculoTot/lngConv * Math.sin(i * Math.PI/180)));
points.push(pint);
}
points.push(points[0]);
geocercaRadio = new google.maps.Polygon({
paths: points,
strokeColor: colorContorno,
strokeOpacity: opacidadContorno,
strokeWeight: 2,
fillColor: colorRelleno,
fillOpacity: opacidadRelleno
});
return geocercaRadio;
} 아래 인 맵을 생성하는데 사용
기능을 묘화하는 기능이다. 여기
function cargaMapaZonas(mapa,longitud, latitud, radio, idRadio){
zoomRadio = validaZoomRadio(idRadio);
var mapProp = {
center:new google.maps.LatLng(latitud,longitud),
zoom:zoomRadio,
mapTypeId:google.maps.MapTypeId.ROADMAP,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE
},
streetViewControl:false};
mapZone=new google.maps.Map(document.getElementById(mapa),mapProp);
radioGeo = radio;
newCenter = new google.maps.LatLng(latitud, longitud);
centroDragzs = agregaMarcadorGeo(imgCenterGeo, 10, 10, newCenter);
centroDragzs.setMap(mapZone);
// geoDragzs=drawCircle(radioGeo,newCenter,mapZone);
geoDragzs=drawCircle(newCenter,radioGeo, colorContorno, anchoContorno, opacidadContorno, colorRelleno, opacidadRelleno);
geoDragzs.setMap(mapZone);
//geoDragzs.bindTo('center', centroDragzs , 'position');
geoDragzs.clickable = false;
google.maps.event.addListener(centroDragzs, "click", function(){
var shape = {
coord: [1, 1, 1, 20, 18, 20, 18 , 1],
type: 'poly'
};
var bbMarker = new google.maps.Marker({
icon: 'img/visor/mm_20_red.png',
shadow: 'img/visor/mm_20_shadow.png',
shape: shape,
position: newCenter,
draggable:true,
map: map
});
bbMarker.setMap(mapZone);
geocoder = new google.maps.Geocoder();
google.maps.event.addListener(bbMarker, "dragend", function(){
geoDragzs.setMap(null);
newCenter = bbMarker.getPosition();
centroDragzs.setPosition(newCenter);
geoDragzs=drawCircle(newCenter,radioGeo, colorContorno, anchoContorno, opacidadContorno, colorRelleno, opacidadRelleno);
geoDragzs.setMap(mapZone);
bbMarker.setMap(null);
mapZone.panTo(newCenter);
parent.document.getElementById("longitud").value = newCenter.lng();
parent.document.getElementById("latitud").value = newCenter.lat();
showLocationfp(newCenter);
});
});
}
것은
내가 cargaMapaZonas()를 호출하는 동안 원을 만들 수 있어요.하지만 modificaradio에서 전화 해요 때() 나는 사람이 나를 인도시겠습니까"invalid value for property <map> <object,object>"
오류 을 받고 있어요이다?
draw_circle
가 이미 정의되어 있지 않은 경우
var draw_circle = null을 추가했습니다. 코드에서 편집하고 질문을 편집했습니다. iframe에서지도 객체를 가져 오는 중에 오류가 있는지 궁금합니다. – user2473430
거기에 사용하는 기능을 모른 채 대답 할 수 없습니다. –
내 질문을 편집했습니다. 제발 좀 봐 주실 수 있습니까? – user2473430