Mapas de Locais
O SportsPress exibe um mapa interativo nas páginas de arquivo de locais e nas páginas de eventos individuais quando o evento tem um local atribuído. O mapa é renderizado usando tiles do OpenStreetMap via a biblioteca JavaScript Leaflet, que está incluída no plugin SportsPress principal.
Como os Mapas São Exibidos
O sistema de mapas usa um hook de ação do WordPress, sp_venue_show_map, chamado a partir do template venue-map.php com a latitude, longitude, endereço, nível de zoom e tipo de mapa do local como argumentos. O módulo OpenStreetMap (incluído no plugin principal em includes/sportspress/modules/sportspress-openstreetmap.php) se conecta a esta ação e renderiza o mapa.
Um mapa é mostrado apenas quando tanto a Latitude quanto a Longitude estão definidas no local. Se as coordenadas estiverem ausentes, nenhum mapa é renderizado.
Onde os Mapas Aparecem
Páginas de arquivo de locais — o mapa aparece no topo da página quando um visitante visualiza a URL pública de um local (por exemplo,
/venue/old-trafford/).Páginas de eventos — se um evento tem um local atribuído com coordenadas, a seção de local da página do evento renderiza um mapa.
Shortcode — o shortcode
[event_venue]inclui o mapa quando o evento tem um local mapeado.
Configurações do Mapa
As opções de exibição do mapa estão em Eventos > Configurações, na seção Locais:
Mapa do Local (
sportspress_event_show_maps) — caixa de seleção para habilitar ou desabilitar a exibição do mapa do local globalmente. Padrão: ativado.Tipo (
sportspress_map_type) — escolha a fonte de tiles:Padrão (
ROADMAP) — tiles de mapa de ruas OpenStreetMap padrão detile.openstreetmap.orgSatélite (
SATELLITE) — tiles de imagem de satélite do ArcGIS Online (Esri World Imagery)
Zoom (
sportspress_map_zoom) — nível de zoom inteiro, intervalo 0–21. Padrão: 15. Valores mais altos ampliam mais (nível de rua), valores mais baixos afastam mais (nível continental).
Essas configurações são lidas pelo template venue-map.php e passadas para a ação sp_venue_show_map.
Coordenadas do Local
As coordenadas são armazenadas por local na tabela de opções do WordPress:
Latitude — armazenada como
sp_latitudeno array de opçãotaxonomy_<term_id>Longitude — armazenada como
sp_longitudeno array de opçãotaxonomy_<term_id>
Para definir coordenadas, edite o local em Eventos > Locais e arraste o marcador do mapa para a localização do local, ou digite valores em graus decimais diretamente nos campos Latitude e Longitude.
Detalhes de Renderização do OpenStreetMap
O contêiner do mapa Leaflet é renderizado como um div de 320px de altura envolvendo uma tag âncora que linka para a página equivalente do Google Maps para as coordenadas. O mapa é inicializado com deslocamento, zoom por toque, zoom por clique duplo e zoom por roda do mouse todos desabilitados — o mapa é apenas para exibição, não interativo.
Um marcador de pino padrão é colocado nas coordenadas armazenadas.
Para imagens de satélite, os tiles vêm do serviço ArcGIS Online World Imagery. Para o tipo padrão (mapa de ruas), os tiles vêm do servidor de tiles público do OpenStreetMap.
Integração com o Google Maps
O plugin SportsPress Pro inclui um módulo SportsPress Google Maps Integration (includes/sportspress-google-maps/). Quando este módulo está ativo, ele remove o manipulador do OpenStreetMap do hook sp_venue_show_map e o substitui por um renderizador de iframe do Google Maps.
O módulo Google Maps renderiza o mapa como um <iframe> incorporando um tile do Google Maps via tboy.co/maps_embed (um proxy para a API de Incorporação do Google Maps). O iframe tem 600×320 pixels. Uma âncora de sobreposição linka para a página completa do Google Maps para o endereço.
O módulo Google Maps não adiciona suas próprias configurações à tela de Configurações de Eventos; ele usa as mesmas configurações sportspress_map_zoom e sportspress_map_type que o módulo OpenStreetMap. Apenas um renderizador de mapa está ativo por vez: o Google Maps substitui o OpenStreetMap quando o módulo é carregado.
