[OpenLayers-Users] GPS coordinate (GPS from mobile devices), lonlat and OpenLayers.Icon

Nicholas Efremov-Kendall n.e.kendall at gmail.com
Wed Jul 13 09:09:54 EDT 2011


set : enablehighaccuracy to True, that actually access the GPS on the
devices.

On Wed, Jul 13, 2011 at 1:02 AM, Noli Sicad <nsicad at gmail.com> wrote:

> Hi,
>
> I would like to replace the Geolocate control functionality to reading
> from the GPS from mobile devices (e.g. iPhone and iPad 2). Geolocate
> html5 is so off from the actual real coordinate (lonLat) like 500
> metres away.
>
> How are do I am going to do this in easiest and nicer way?
>
> I am able to get the my current location (i.e. lon and lat values)
> from the iPhone/ iPad  GPS  to HTML DOM (i.e. Textbox).
>
> e.g.
>
> jQTouch with Xcode,
>
> <ul class="edit rounded">
>      <li>Longitude: <input id='lng' type="text" value='' /></li>
>      <li>Latitude: <input id='lat' type="text" value='' /></li>
> </ul>
>
> Now, the question is, would I be able to get icon from the local
> directory, not from http server?
>
> In this example below, it seems that OpenLayers.Icon is retrieved from
> http server.
>
> ~~~~~~
> var icon = new OpenLayers.Icon('
> http://www.openstreetmap.org/openlayers/img/marker.png',size,offset);
> layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));
> ~~~~~~
> from,  http://wiki.openstreetmap.org/wiki/Openlayers_Track_example
>
> If not, would vector maker good option for this?
>
> In this example, http://openlayers.org/dev/examples/geolocation.html
>
> How can I mapulated this function to cater to the lon and lat values
> from the GPS?
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> var geolocate = new OpenLayers.Control.Geolocate({
>    bind: false,
>    geolocationOptions: {
>        enableHighAccuracy: false,
>        maximumAge: 0,
>        timeout: 7000
>    }
> });
> map.addControl(geolocate);
> var firstGeolocation = true;
> geolocate.events.register("locationupdated",geolocate,function(e) {
>    vector.removeAllFeatures();
>    var circle = new OpenLayers.Feature.Vector(
>        OpenLayers.Geometry.Polygon.createRegularPolygon(
>            new OpenLayers.Geometry.Point(e.point.x, e.point.y),
>            e.position.coords.accuracy/2,
>            40,
>            0
>        ),
>        {},
>        style
>    );
>    vector.addFeatures([
>        new OpenLayers.Feature.Vector(
>            e.point,
>            {},
>            {
>                graphicName: 'cross',
>                strokeColor: '#f00',
>                strokeWidth: 2,
>                fillOpacity: 0,
>                pointRadius: 10
>            }
>        ),
>        circle
>    ]);
>    if (firstGeolocation) {
>        map.zoomToExtent(vector.getDataExtent());
>        pulsate(circle);
>        firstGeolocation = false;
>        this.bind = true;
>    }
> });
> geolocate.events.register("locationfailed",this,function() {
>    OpenLayers.Console.log('Location detection failed');
> });
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Any ideas and implementation how to do this?
>
> Thanks.
>
> Regards, Noli
> _______________________________________________
> Users mailing list
> Users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20110713/02981ab3/attachment-0001.html


More information about the Users mailing list