1import{hj as b,hk as x,c as G,g$ as L,h4 as S,r as p,hl as V,hm as R,a as W,j as e,L as _,b as i,A as H,J as K,M as v,S as q,V as P,bJ as J}from"./index-DPvlhSbR.js";import{B as Q}from"./breadcrumbs-DTLw04lH.js";import{S as O}from"./share-button-NqrDVCrd.js";import{p as U}from"./comparisons-B7xb-kKc.js";import{A as T}from"./arrow-left-BTh5i4r5.js";import"./builders-BQdscFNn.js";import"./operator-profiles-CoCD50mO.js";import"./copy-DHl73382.js";function M(a){return a.length?a[0].toUpperCase()+a.slice(1):a}function F(a){return a.clubData==="supported"?"players who want club-delivery data â club path, face angle and angle of attack â to work on swing mechanics, not just ball flight":a.clubData==="varies"?"players who want a complete simulator package for course play, where club-delivery data depends on the launch monitor included":"ball-flight practice and playing rounds â its club-delivery metrics aren't publicly documented"}function I(a,t){const o=a.clubData;return o==="supported"?`Both ${a.name} and ${t.name} suit players who want club-delivery data (club path, face angle, angle of attack) alongside ball flight â choose on sensor type, how each is set up at your venue, and which you can find nearby.`:o==="varies"?`Both ${a.name} and ${t.name} ship as complete packages, so club-delivery data depends on the launch monitor included â choose on the specific package and which you can find nearby.`:`Both ${a.name} and ${t.name} suit ball-flight practice and playing rounds; neither publishes full club-delivery metrics, so choose on sensor type and which you can find nearby.`}function j(a){return a.clubData==="supported"?`${a.name} documents club-delivery data`:a.clubData==="varies"?`${a.name}'s club-delivery data depends on the package it ships with`:`${a.name}'s public specs focus on ball flight (club-delivery metrics aren't publicly documented)`}function z(a,t){let o;a.clubData==="supported"&&t.clubData==="supported"?o=`Both ${a.name} and ${t.name} document club-delivery data (club path, face angle, angle of attack) on top of ball flight.`:a.clubData===null&&t.clubData===null?o=`Neither ${a.name} nor ${t.name} publishes full club-delivery metrics, so both are documented mainly around ball-flight data.`:a.clubData==="varies"&&t.clubData==="varies"?o=`Both ${a.name} and ${t.name} ship as packages, so club-delivery data depends on the specific setup.`:o=`${M(j(a))}, while ${j(t)}.`;const r="Every launch monitor reports the ball-flight data needed to simulate a shot, and game modes are set by the simulator software, so course play feels similar from venue to venue.",s=`The practical differences come down to the sensor approach (${a.name}: ${a.category.toLowerCase()}; ${t.name}: ${t.category.toLowerCase()}) and how many venues near you run each â you can try both at venues in our directory.`,l=`${o} ${r} ${s}`;return a.clubData===t.clubData?{summary:l,personas:[],jointNote:I(a,t)}:{summary:l,personas:[{name:a.name,text:F(a)},{name:t.name,text:F(t)}],jointNote:null}}function X(a,t){let o;if(a.category===t.category)o=`Both are described as a ${a.category.toLowerCase()}.`;else{const l=b(a.category),u=b(t.category),g=l==="radar"&&u==="camera"||l==="camera"&&u==="radar"?" â one reads your shot with radar, the other with cameras.":".";o=`${a.name} is a ${a.category.toLowerCase()}; ${t.name} is a ${t.category.toLowerCase()}${g}`}let r;a.ballData==="supported"&&t.ballData==="supported"?r="Both report ball-flight data â the essentials every launch monitor captures to simulate a shot.":r=`${a.name}: ${x(a.ballData)}; ${t.name}: ${x(t.ballData)}.`;let s;return a.clubData==="supported"&&t.clubData==="supported"?s="Both document club-delivery data (club path, face angle, angle of attack).":a.clubData===null&&t.clubData===null?s=`Neither ${a.name} nor ${t.name} publishes full club-delivery metrics â both center on ball flight.`:s=`${M(j(a))}, while ${j(t)}.`,[{label:"Measurement type",text:o},{label:"Ball-flight data",text:r},{label:"Club-delivery data",text:s}]}function Y(a,t){const o=b(a.category),r=b(t.category);let s;return o!=="other"&&o===r?s=`Both read your swing with ${o==="radar"?"radar":"cameras"}, so the day-to-day experience is closer than the brand names suggest â the differences are in the documented data and how each bay is set up.`:o==="radar"&&r==="camera"||o==="c
1amera"&&r==="radar"?s=`${a.name} and ${t.name} use different sensor types (${a.category.toLowerCase()} vs ${t.category.toLowerCase()}), which changes how a bay is built and calibrated but not whether you can play a full round on either.`:s=`${a.name} and ${t.name} take different measurement approaches, so it's worth checking how each specific unit is set up at the venue you visit.`,[s,"Game modes and course libraries are set mostly by the simulator software, so what you can actually play is similar from venue to venue.","Pricing is set by each venue â its location, bay time and local demand â not by the launch monitor, so compare bay pricing on individual listings rather than by brand.","The same system is installed and calibrated differently at each venue, which affects the experience as much as the brand does â the most reliable test is to hit balls on each yourself."]}function le(){const[,a]=G("/compare/:slug"),t=typeof a?.slug=="string"?a.slug:"",o=U(t.toLowerCase()),r=o?.a,s=o?.b,l=L(r?.slug??"__none__",{query:{enabled:!!r,queryKey:S(r?.slug??"__none__")}}),u=L(s?.slug??"__none__",{query:{enabled:!!s,queryKey:S(s?.slug??"__none__")}}),w=window.location.origin,g=!o,$=o?`${w}/compare/${o.canonical}`:void 0,c=r?.name??"",d=s?.name??"",A=o?`${c} vs ${d}: Golf Simulator Comparison`:"Comparison Not Found | Golf Sim Finder",k=o?`Compare ${c} and ${d} golf simulators: how each measures your swing, and how many venues in our directory run each system. Find and book a bay near you.`:"This simulator comparison could not be found.",C=p.useMemo(()=>r&&s?V(r,s):[],[r,s]),E=p.useMemo(()=>{if(!(!o||!r||!s))return R(r,s)},[o,r,s]),h=p.useMemo(()=>r&&s?z(r,s):null,[r,s]),D=p.useMemo(()=>r&&s?X(r,s):[],[r,s]),B=p.useMemo(()=>r&&s?Y(r,s):[],[r,s]);if(W({title:A,description:k,url:$,robots:g?"noindex, follow":void 0,jsonLd:E}),g)return e.jsx(_,{children:e.jsxs("div",{className:"container mx-auto px-4 py-20 text-center",children:[e.jsx("h1",{className:"text-3xl font-bold mb-4",children:"Comparison not found"}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"We couldn't find that simulator comparison. Browse all of them instead."}),e.jsxs(i,{href:"/compare",className:"inline-flex items-center text-primary font-medium hover:underline",children:[e.jsx(T,{className:"w-4 h-4 mr-2"})," All comparisons"]})]})});const f=(n,m)=>n.isLoading?e.jsx(q,{className:"h-4 w-10"}):n.isError?e.jsx("span",{className:"italic text-muted-foreground/70",children:"Unavailable"}):(m??0).toLocaleString();return e.jsxs(_,{children:[e.jsx("div",{className:"bg-card border-b",children:e.jsxs("div",{className:"container mx-auto px-4 py-14",children:[e.jsx("div",{className:"mb-4",children:e.jsx(Q,{items:[{name:"Home",href:"/"},{name:"Compare",href:"/compare"},{name:`${c} vs ${d}`}]})}),e.jsxs(i,{href:"/compare",className:"inline-flex items-center text-sm text-muted-foreground hover:text-foreground mb-6 transition-colors",children:[e.jsx(T,{className:"w-4 h-4 mr-1.5"})," All comparisons"]}),e.jsxs("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight text-foreground",children:[c," vs ",d]}),e.jsx("div",{className:"mt-5",children:e.jsx(O,{url:$,title:`${c} vs ${d}: Golf Simulator Comparison`,text:k})}),e.jsxs("p",{className:"mt-4 max-w-3xl text-muted-foreground leading-relaxed",children:["How ",c," and ",d," compare as indoor golf simulator systems â and where you can actually play each one. The venue counts below are live from our directory."]})]})}),e.jsxs("div",{className:"container mx-auto px-4 py-12",children:[h&&e.jsx("section",{className:"mb-12","aria-labelledby":"compare-verdict-heading",children:e.jsxs("div",{className:"rounded-2xl border bg-card p-6 md:p-8",children:[e.jsx("h2",{id:"compare-verdict-heading",className:"text-2xl font-bold tracking-tight",children:"The quick take"}),e.jsx("p",{className:"mt-3 max-w-3xl text-muted-foreground leading-relaxed",children:h.summary}),h.personas.length>0?e.jsx("div",{className:"mt-6 grid grid-cols-1 md:grid-cols-2 gap-4",children:h.personas.map(n=>e.jsxs("div",{className:"rounded-xl border bg-background p-5",children:[e.jsxs("p",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:[n.name," is best for"]}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground leading-relaxed",children:n.text})]},n.name))}):h.jointNote?e.jsxs("div",{className:"mt-6 rounded-xl border bg-background p-5",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:"Who they're for"}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground leading-relaxed",children:h.jointNote})]}):null]})}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[r,s].filter(n=>!!n).map(n=>{const m=n.icon;return e.jsxs("div",{className:"rounded-2xl border bg-card p-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"bg-primary/10 text-primary p-2.5 rounded-lg",children:e.jsx(m,{className:"w-6 h-6","aria-hidden":"true"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold",children:n.name}),e.jsx("p",{className:"text-sm text-primary/80 font-medium",children:n.category})]})]}),e.jsx("p",{className:"mt-4 text-muted-foreground leading-relaxed",children:n.detail}),e.jsxs("p",{className:"mt-3 text-sm text-muted-foreground leading-relaxed",children:[e.jsxs("span",{className:"font-medium text-foreground",children:["What it measures:"," "]}),n.capabilityNote]}),e.jsxs(i,{href:`/technology/${n.slug}`,className:"mt-5 inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline",children:["Find ",n.name," venues",e.jsx(H,{className:"w-3.5 h-3.5","aria-hidden":"true"})]})]},n.slug)})}),e.jsxs("section",{className:"mt-12",children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight mb-5",children:"Side by side"}),e.jsx("div",{className:"overflow-x-auto rounded-2xl border",children:e.jsxs("table",{className:"w-full text-left text-sm",children:[e.jsxs("caption",{className:"sr-only",children:["Comparison of ",c," and ",d," by measurement type and directory coverage"]}),e.jsx("thead",{className:"bg-muted/50",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"px-5 py-3 font-semibold",children:"Â "}),e.jsx("th",{scope:"col",className:"px-5 py-3 font-semibold",children:c}),e.jsx("th",{scope:"col",className:"px-5 py-3 font-semibold",children:d})]})}),e.jsxs("tbody",{className:"divide-y",children:[e.jsxs("tr",{children:[e.jsx("th",{scope:"row",className:"px-5 py-3 font-medium",children:"Measurement type"}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:r?.category}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:s?.category})]}),e.jsxs("tr",{children:[e.jsx("th",{scope:"row",className:"px-5 py-3 font-medium",children:"Ball-flight data"}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:x(r?.ballData??null)}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:x(s?.ballData??null)})]}),e.jsxs("tr",{children:[e.jsx("th",{scope:"row",className:"px-5 py-3 font-medium",children:"Club-delivery data"}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:x(r?.clubData??null)}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:x(s?.clubData??null)})]}),e.jsxs("tr",{children:[e.jsx("th",{scope:"row",className:"px-5 py-3 font-medium",children:"Venues in our directory"}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:f(l,l.data?.venueCount)}
1),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:f(u,u.data?.venueCount)})]}),e.jsxs("tr",{children:[e.jsx("th",{scope:"row",className:"px-5 py-3 font-medium",children:"Cities covered"}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:f(l,l.data?.cityCount)}),e.jsx("td",{className:"px-5 py-3 text-muted-foreground",children:f(u,u.data?.cityCount)})]})]})]})}),e.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:"Venue and city counts reflect listings in our directory and update as new venues are added. They are a measure of availability, not a ranking of quality."}),D.length>0&&e.jsx("div",{className:"mt-6 grid gap-3 sm:grid-cols-3",children:D.map(n=>e.jsxs("div",{className:"rounded-xl border bg-card p-4",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:n.label}),e.jsx("p",{className:"mt-1.5 text-sm text-muted-foreground leading-relaxed",children:n.text})]},n.label))})]}),B.length>0&&e.jsxs("section",{className:"mt-14","aria-labelledby":"compare-choose-heading",children:[e.jsxs("h2",{id:"compare-choose-heading",className:"text-2xl font-bold tracking-tight mb-5",children:["How to choose between ",c," and ",d]}),e.jsx("ul",{className:"space-y-3 max-w-3xl",children:B.map((n,m)=>e.jsxs("li",{className:"flex gap-3",children:[e.jsx(K,{className:"mt-0.5 h-5 w-5 shrink-0 text-primary","aria-hidden":"true"}),e.jsx("span",{className:"text-sm text-muted-foreground leading-relaxed",children:n})]},m))}),r&&s&&e.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[e.jsxs(i,{href:`/technology/${r.slug}`,className:"inline-flex items-center gap-1.5 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",children:[e.jsx(v,{className:"w-4 h-4","aria-hidden":"true"})," Try ",c," ","near you"]}),e.jsxs(i,{href:`/technology/${s.slug}`,className:"inline-flex items-center gap-1.5 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",children:[e.jsx(v,{className:"w-4 h-4","aria-hidden":"true"})," Try ",d," ","near you"]})]})]}),e.jsx("div",{className:"mt-14 grid grid-cols-1 lg:grid-cols-2 gap-10",children:[{brand:r,query:l},{brand:s,query:u}].filter(n=>!!n.brand).map(({brand:n,query:m})=>{const N=(m.data?.venues??[]).slice(0,4);return e.jsxs("section",{children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between gap-4",children:[e.jsxs("h2",{className:"text-xl font-bold flex items-center gap-2",children:[e.jsx(v,{className:"w-5 h-5 text-primary","aria-hidden":"true"}),"Venues with ",n.name]}),(m.data?.venueCount??0)>N.length&&e.jsx(i,{href:`/technology/${n.slug}`,className:"shrink-0 text-sm font-medium text-primary hover:underline",children:"See all"})]}),m.isLoading?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[1,2].map(y=>e.jsx(q,{className:"aspect-[4/3] rounded-xl"},y))}):m.isError?e.jsx("div",{className:"py-8 text-center bg-card rounded-xl border border-dashed",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["We couldn't load ",n.name," venues right now. Please try again later."]})}):N.length>0?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:N.map(y=>e.jsx(P,{venue:y},y.id))}):e.jsx("div",{className:"py-8 text-center bg-card rounded-xl border border-dashed",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["No venues listed with ",n.name," yet."]})})]},n.slug)})}),C.length>0&&e.jsxs("section",{className:"mt-16","aria-labelledby":"compare-faq-heading",children:[e.jsx("h2",{id:"compare-faq-heading",className:"text-2xl font-bold tracking-tight mb-6",children:"Frequently asked questions"}),e.jsx("div",{className:"space-y-4 max-w-3xl",children:C.map(n=>e.jsxs("div",{className:"rounded-xl border bg-card p-6",children:[e.jsx("h3",{className:"font-bold text-foreground",children:n.q}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground leading-relaxed",children:n.a})]},n.q))})]}),e.jsxs("section",{className:"mt-16 rounded-2xl border bg-card p-8",children:[e.jsx("h2",{className:"text-2xl font-bold",children:"Keep exploring"}),e.jsx("p",{className:"mt-2 text-muted-foreground max-w-3xl leading-relaxed",children:"Not sure which system fits how you play? Our guides walk through choosing a simulator brand and how pricing usually works, or you can compare other systems and browse venues near you."}),e.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[e.jsx(i,{href:"/learn/how-to-choose-a-golf-simulator-brand",className:"inline-flex items-center gap-1.5 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",children:"How to choose a simulator brand"}),e.jsx(i,{href:"/learn/golf-simulator-cost",className:"inline-flex items-center gap-1.5 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",children:"What it costs to play"}),e.jsx(i,{href:"/compare",className:"inline-flex items-center gap-1.5 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",children:"All comparisons"}),e.jsx(i,{href:"/technology",className:"inline-flex items-center gap-1.5 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",children:"Technology guide"}),e.jsxs(i,{href:"/browse",className:"inline-flex items-center gap-1.5 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",children:[e.jsx(J,{className:"w-4 h-4","aria-hidden":"true"}),"Browse all venues"]})]})]})]})]})}export{le as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.