(Foursquare) Расчет расстояния регистрации - PullRequest
1 голос
/ 15 июля 2011

Мы разрабатываем браузерную гоночную игру с прямой трансляцией.Наши соперники начнут гонку с точки START, и первый участник, зарегистрировавшийся в месте STOP, выиграет гонку.

Например, это место будет нашим местом STOP: https://foursquare.com/venue/2154697

Носуществует проблема.Например, сейчас я на расстоянии 1,3 км от места проведения STOP, но я могу зарегистрироваться и выиграть гонку :) Поэтому я должен рассчитать расстояние, и если расстояние меньше 100 метров, соперник победит.

Как мы можем это сделать?

Короче, я должен подтвердить, что соперник действительно в этом месте.

Ответы [ 2 ]

2 голосов
/ 17 июля 2011

Я бы посоветовал вам не использовать функцию регистрации для определения выигрыша именно по тем причинам, которые вы упомянули выше. Скорее, я бы посоветовал вам выбрать выигрышную позицию из квадрата, а затем использовать собственный поиск широты / долготы устройства для сравнения.

Если вы создаете браузерную игру, вы можете получать информацию GPS непосредственно в JS в большинстве современных браузеров ОС (iOs, Android, Palm и т. Д.). Почти все фреймворки приложений поддерживают это и сейчас. Несмотря на то, что поиск GPS в браузере является законной спецификацией, существуют удобные инструменты JS, которые помогают с перекрестной совместимостью, как этот [[http://code.google.com/p/geo-location-javascript/]]

Итак, теперь, когда вы знаете широту / долготу «пункта назначения» и истинную позицию игрока, вы можете вычислить дельту по местоположению с помощью некоторой тригонометрии. Помните, однако, что сами дельты lat и log не так просты, как вычитание, как вы играете на изогнутой поверхности. Хорошей новостью является то, что в этой статье stackOverflow рассказывается, как это сделать [[* Рассчитать расстояние между двумя GPS-координатами ]]

.
1 голос
/ 17 июля 2011

Самый надежный способ убедиться, что пользователь находится в нужном месте, - это разместить какой-то секретный код в указанном месте, который пользователь должен будет найти и напечатать.

Поскольку вы, похоже, играете в какую-то игру, почему бы не устроить дешевый подарок (например, шоколад или торт), содержащий код?

Это, конечно, выполнимо, только если выбранные вами местоположения являются местоположениями, которые вы каким-то образом контролируете. Вы можете договориться о сотрудничестве с франшизой кафе и использовать места кафе в качестве остановочных пунктов.

Дайте секретный код в начальной точке, и когда он прибудет в кафе, пользователь может преобразовать свой секретный код в тесто или что-то в этом роде, а его код используется для генерации кода завершения.

...