latlng не определен (пытается использовать геолокацию в браузере) (gmaps4rails v2)
map.js.coffee
jQuery ->
getLocation = ->
if navigator.geolocation
navigator.geolocation.getCurrentPosition userPosition showError options
else
alert("Geolocation is not supported by this browser.")
handler = Gmaps.build 'Google'
handler.buildMap
provider: {}
internal: {id: 'map'}
, ->
handler.panTo latlng
geolocation.js.coffee
userPosition = (position) ->
latlng = new google.maps.LatLng(position.coords.latitude + "," + position.coords.longitude)
alert(latlng)
showError = (error) ->
switch error.code
when error.PERMISSION_DENIED
alert("User denied the request for Geolocation.")
when error.POSITION_UNAVAILABLE
alert("Location information is unavailable.")
when error.TIMEOUT
alert("The request to get user location timed out.")
when error.UNKNOWN_ERROR
alert("An unknown error occurred.")
options =
enableHighAccuracy: false
timeout: 5000
Я чувствую, что, может быть, я не понимаю глобальных переменных? Я пытался переместить getLocation
звонить повсюду...
Я пытался положить все это в одном файле...
Я попытался переместить обработчик над (снаружи) jQuery
функция ready..., которая выдает другую ошибку о _ не определен.
Я бросил alert(latlng)
там просто чтобы посмотреть, ударил ли он даже по этой функции... это не так.
Я пробую новый гем gmaps4rails и немного борюсь. Я также проверил информацию в W3schools, к которой этот код довольно близок.
1 ответ
Решение
Не понимаю ваш код, но вот идея:
handler = Gmaps.build 'Google'
handler.buildMap { internal: {id: 'map'} }, ->
positionSuccess = (position) ->
handler.map.centerOn
lat: position.coords.latitude
lng: position.coords.longitude
positionError = ->
navigator.geolocation.getCurrentPosition(positionSuccess, positionError)