Hoy
les traigo un pequeño truco para luego de dibujar figuras en formas de
círculos, rectángulos, polígonos, líneas en here, pueda cerrarlas, o sea,
cuando usted dibuja en el mapa y ya no desea seguir y sin querer da un click en
otro lugar, el grafico se deforma, pues hoy les enseñare como darle solución a
este detalle.
Este
pequeño artículo es para aquellos que tienen conocimiento básico para trabajo
con here, teniendo lo básico en nuestra página solo nos queda seguir los
siguientes paso:
Crear un script y
dentro colocar las variables inicializadas en false que nos ayudarán activar o
desactivar el evento para dibujar en el mapa, luego registrar el evento y crear
la función:
Inciando disparadores:
var activeCirculo = false;
var activeCloseCircle = false;
Iniciando jquery:
$(function(){
Registrando función
que estará escuchando el evento para dibujar en el mapa:
mapa.addEventListener('tap',
function (evt) {
if (!activeCirculo) return;
Declarando
cordenadas de donde se cargara el grafico
var coords
= mapa.screenToGeo
(
evt.currentPointer.viewportX,
evt.currentPointer.viewportY
);
Declarando dimensión
del radio
radio = 600000;
Creando circulo:
circle
= new H.map.Circle(coords, radio);
markerRadius = new
H.map.DomMarker({
lat: shapeToAdd.getStrip().getLatLngAltArray()[45],
lng:
shapeToAdd.getStrip().getLatLngAltArray()[46]
});
Esta variable nos
permite redimensionar nuestro grafico
markerRadius.draggable = true;
Con esta función agregamos
el grafico en el mapa para visualizarlo
mapa.addObject(markerRadius);
}, false);
Registrando el
evento que permitirá cerrar o dejar de dibujar en el mapa:
mapa.addEventListener('tap',function(e){
if(activeCirculo){
if(activeCloseCircle) {
return;
}
Declarando función
para activar botón en el mapa para cerrar o desactivar que se siga graficando:
actionCloseCircle
();
Reseteando la variable que muestra
el botón para cerrar gráfico:
activeCloseCircle = true;
})
function actionCloseCircle(){
$('#canvas > div').append(
$('<div>').addClass('closeCircle').append(
$('<div>').css({
marginTop:'50%',
borderRadius: ‘13px’, width: ‘28px’, height: ‘50px’,
backgroundColor:
‘#1F262A’, cursor: ‘pointer’, color:’#fcfcfc’,
fontSize:’18px’,
fontWeight: ‘700’, textShadow: ‘1px 1px 10px #333’,
bottom:
‘330px’, zIndex: ‘1’, position: ‘absolute’, textAlign: ‘center’
}).text('X').attr({
title: 'Cerrar grafica'
}).click(function(){
activeCircle= false;
activeCloseCircle = false;
$('.closeCircle').remove();
})
)
)}
No hay comentarios:
Publicar un comentario