Hello I am trying to figure out a problem I am having in a mobile site I am 
developing

Given that I can find my location on a Google Map using jquery I want to 
pass those (lat and long) values as well as how much range to search to my 
query I am confused how to pass the values and do the query

(I want to create a search function based on your current position to 
within a given range)

here is my form code as well as my query I attempted

<h3>Search By Distance</h3>
    
    
    
        <div id="MapContainer">
                <img id="locationImage" style='width: 
240px'/><br/>Accuracy: <span id="locationAccuracy">N/A</span>
        <a id="getLocation" data-role="button" href="#">Access My 
Location</a>
        </div>

        <div data-role="fieldcontain">
            <label for="distance">Distance</label>
            <input type="range" min="5" max="250" step="5" value="25" 
name="distance" id="distance" />
            <input type="hidden" name="getLocation" id="getLocation">
        </div>
        <a data-role="button" data-icon="minus" data-inline="true" 
data-rel="back" href="#" data-theme="b">Cancel</a>
        <a data-transition="fade" id="distance_submit" data-role="button" 
data-icon="check" data-inline="true" href="#" class="ui-disabled">Submit</a>

        <script type="text/javascript">
            var setLocation = function(position) {
                $.post(
                    "{{=URL('views', 'location')}}",
                    {
                        data : {
                            latitude : position.coords.latitude,
                            longitude : position.coords.longitude,
                            accuracy : position.coords.accuracy
                        }
                    },
                    function() {
                        $("#getLocation").fadeTo('fast', 1);
                        $("#getLocation .ui-btn-text").html("Update My 
Location");
                        $("#distance_submit").removeClass('ui-disabled');

                        var accuracyText = position.coords.accuracy + 'm';
                        var accuracyZoom = 14;
                        if (position.coords.accuracy >= 1000) {
                            accuracyText = 
Math.round(position.coords.accuracy/1000) + 'km';
                            accuracyZoom = 12;
                        }
                        $("#locationImage").attr(
                            'src',
                            
'http://maps.googleapis.com/maps/api/staticmap?sensor=true&size=240x200&scale=2&zoom='
 
+ accuracyZoom + '&markers=' + position.coords.latitude + ',' + 
position.coords.longitude
                        );
                        $('#locationAccuracy').html(accuracyText);
                        $('#MapContainer').fadeTo('fast', 1);
                    }
                );
            };
            var locationError = function(error) {
                $("#visitorLocationMapContainer").html("There was an error 
accessing your location");
                $("#getLocation").fadeTo('fast', 1);
            };

            $('#getLocation').click(function() {
                $(this).fadeTo('fast', 0.5);
                $("#visitorLocationMapContainer").fadeTo('fast', 0.5);
                navigator.geolocation.getCurrentPosition(setLocation, 
locationError, {timeout: 60000});
            });
            
               $("#distance_submit").click(function() {
                var val = $("#distance").val();
                if (!val) {
                    return;
                }
                $.mobile.changePage("{{=URL('views', 'location')}}" + val);
            });
        </script>


######PYTHON#####

def location():
    mystr = request.post_vars["distance"]
    distance = db(db.listing.latitude == mystr).select(db.listing.ALL)
    return dict(distance=distance)

Sorry for the beginner question :-P


*cheers and ty :D

-- 



Reply via email to