Example of Source used for apps for democracy submission

Its a fairly simple implementation of a xml reader combined with a

distance calculator. Once the current location of lat long is passed

to this code from the PointAbout mobile software. It is an example of how basic code and location information can completly change the use and power of simple data streams and web sites.

An example xml doc is also appended to the bottom of this post for testing.

 

—-EXAMPLE OF DISTANCE FORMULA—-

 

def getDistance(fromLat, fromLong, toLat, toLong ):

  lat1 = float(fromLat)

  lon1 = float(fromLong)

  R = 6371; # km

  lat2 = toLat

  lon2 = toLong

  dLat = math.radians(lat2-lat1)

  dLon = math.radians(lon2-lon1)

  a = math.sin(dLat/2) * math.sin(dLat/2) +

math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) *

math.sin(dLon/2) * math.sin(dLon/2)

  c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))

  d = R * c

  return d

 

——EXAMPLE OF XML TO ORDERED BY DISTANCE———–

 

  #logging.info(file_xml.toxml())

  listings = {}

  for item in itemNodeSub:

      try: name = item.childNodes[1].childNodes[0].data

      except: name = None

 

      try:

          html = item.childNodes[2].childNodes[0].data

          p = re.compile(“ADDRESS:</td><td>(.*?)</td>”)

          m = p.search(html)

          address = m.group(1)

          city = “Washington”

          state = “DC”

          address = address + ” ” + city + “, ” + state

      except:

          address = “No Data”

          logging.debug(“Error”)

 

 

      data = {

              ”name”:name,

              ”address”:address,

 

      }

 

      distance = 0.0

      try:

          lng, lat, alt =

item.childNodes[4].childNodes[1].childNodes[0].data.split(“,”)

          distance = getDistance(currLat , currLng,

float(lat.strip()), float(lng.strip()))

      except:

          lat = None

          lng = None

      search = requestHandler.get(“search”)

      if search == None or name.lower().find(search.lower()) >= 0:

          listings.update({distance:[data, round(distance,2)]})

 

  orderedListing = sortedDictValues1(listings)

 

 

——-SAMPLE OF XML FEED—–

 

<kml xmlns=”http://earth.google.com/kml/2.2&#8243;

xmlns:atom=”http://www.w3.org/2005/Atom”&gt;

<Document>

<open>1</open>

<name><![CDATA[Layers]]></name>

<Folder><name>Legend</name><visibility>0</visibility><ScreenOverlay><name>Legend</name><visibility>0</visibility><overlayXY

x=”0″ y=”1″ xunits=”fraction” yunits=”fraction” /><screenXY x=”0″

y=”1″ xunits=”fraction” yunits=”fraction”

/><Icon><href>legend.png</href></Icon></ScreenOverlay></Folder>

<Folder><name><![CDATA[Banks]]></name>

<visibility>1</visibility>

<open>1</open>

<Folder><name>Data</name><visibility>1</visibility>

<Placemark id=”pm5504″ ><Snippet

maxLines=”0″>empty</Snippet><name><![CDATA[Adams

Bank]]></name><description><![CDATA[<b><font size="4"face="Arial">Bank

Locations</b><p></p><table cellpadding="1"

cellspacing="1"><tr><td>NAME:</td><td>Adams

Bank</td></tr><tr><td>ADDRESS:</td><td>1729 Wisconsin Ave,

NW</td></tr><tr><td>ZIPCODE:</td><td>20007</td></tr><tr><td>ADDRESS_ID:</td><td>275259</td></tr></table><p></p><b><font

size="4" face="arial"><form>Provided by:  </form></b><a

href="http://dcgis.dc.gov/">District of Columbia

GIS</a>]]></description><styleUrl>#Style_92</styleUrl><Point

id=”g7177″><altitudeMode>clampedToGround</altitudeMode><coordinates>-77.0668994099031,38.9145339105088,1

</coordinates></Point></Placemark><Placemark id=”pm5505″ ><Snippet

maxLines=”0″>empty</Snippet><name><![CDATA[Adams

Bank]]></name><description><![CDATA[<b><font size="4"face="Arial">Bank

Locations</b><p></p><table cellpadding="1"

cellspacing="1"><tr><td>NAME:</td><td>Adams

Bank</td></tr><tr><td>ADDRESS:</td><td>1501 K Street,

NW</td></tr><tr><td>ZIPCODE:</td><td>20006</td></tr><tr><td>ADDRESS_ID:</td><td>279201</td></tr></table><p></p><b><font

size="4" face="arial"><form>Provided by:  </form></b><a

href="http://dcgis.dc.gov/">District of Columbia

GIS</a>]]></description><styleUrl>#Style_92</styleUrl><Point

id=”g7178″><altitudeMode>clampedToGround</altitudeMode><coordinates>-77.0351181683022,38.9029520625695,1

</coordinates></Point></Placemark><Placemark id=”pm5506″ ><Snippet

maxLines=”0″>empty</Snippet><name><![CDATA[Adams

Bank]]></name><description><![CDATA[<b><font size="4"face="Arial">Bank

Locations</b><p></p><table cellpadding="1"

cellspacing="1"><tr><td>NAME:</td><td>Adams

Bank</td></tr><tr><td>ADDRESS:</td><td>50 Massachusetts, Avenue,

SE</td></tr><tr><td>ZIPCODE:</td><td>20002</td></tr><tr><td>ADDRESS_ID:</td><td>293243</td></tr></table><p></p><b><font

size="4" face="arial"><form>Provided by:  </form></b><a

href="http://dcgis.dc.gov/">District of Columbia

GIS</a>]]></description><styleUrl>#Style_92</styleUrl><Point

id=”g7179″><altitudeMode>clampedToGround</altitudeMode><coordinates>-77.0061791229437,38.8975384697844,1

</coordinates></Point></Placemark></Folder></Folder>

<StyleMap id=”Style_92″

><Pair><key>normal</key><styleUrl>#Style_92n</styleUrl></Pair><Pair><key>highlight</key><styleUrl>#Style_92h</styleUrl></Pair><BalloonStyle><color>ffdcf5f5</color><textColor>ff000000</textColor><text><![CDATA[

$[description] ]]></text></BalloonStyle></StyleMap><Style

id=”Style_92n”><IconStyle><scale>0.5</scale><Icon><href>Style_92n.png</href></Icon></IconStyle><PolyStyle><fill>1</fill><color>ff00a838</color><outline>0</outline></PolyStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle><color>ffdcf5f5</color><textColor>ff000000</textColor><text><![CDATA[

$[description] ]]></text></BalloonStyle></Style><Style

id=”Style_92h”><IconStyle><scale>0.5</scale><Icon><href>Style_92h.png</href></Icon></IconStyle><PolyStyle><fill>1</fill><color>ff00a838</color><outline>0</outline></PolyStyle><LabelStyle><color>ffffffff</color><scale>1</scale></LabelStyle><BalloonStyle><color>ffdcf5f5</color><textColor>ff000000</textColor><text><![CDATA[

$[description] ]]></text></BalloonStyle></Style>

</Document></kml>

About these ads

12 Comments »

  1. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  2. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  3. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  4. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  5. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  6. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  7. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  8. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  9. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  10. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  11. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

  12. [...] Code Location: http://pointabout.wordpress.com/2008/12/01/example-of-source-used-for-apps-for-democracy-submission/ [...]

RSS feed for comments on this post · TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: