oops, I'm sorry. It's attached. There are text and attribute indexes.
It may be slightly faster if you remove the explicit string() conversion:
for $x in db:open("CDI") let $beginPosition := $x//startTime where $beginPosition >= "1889-01-01" and $beginPosition <= "2015-07-10" return db:node-pre($x)
But please note that BaseX provides no native range index, which would be a good fit for your longitude/latitude filter.