IRANMAP GoogleMap mashup project(stickyplease)

Discussion in 'Resources' started by akisis, Jun 21, 2009.

  1. akisis Member

    This is a Google map project that aim to be a community editable database of events that are manually geotagged, and verified to be happening in tehran or elsewhere in Iran by an army of selected moderators from this forum.

    The aim is to help spread awareness of events in Iran by putting all the disjointed pieces of information into a package that allows readers to see all the events that are happening in iran in context.

    In addition, by collating all these data, we are allowing ourselves to potentially spot any pattern of attacks that may be happening to innocent Iranians. Thus it providers us with actionable intelligence that may save lives. On the other hand, it would allow us to disseminate group-moderated information about protest gatherings, strikes and other actions in Iran to allow Iranians to better coordinate with each other.

    Iran Map | Iran Map

    Currently, we have two versions of the project under development (see links below). The Drupal version is the one we're concentrating on getting up and running quickly, but the second version might become more sophisticated and hence more useful in due course, given sufficient development.
    We are working to gain a secure server for when the project goes live.

    The goal of this project is summed up as Total Information Awareness.

    This is a open source initiative by the citizen of anonnet #iran.analysis

    And we need help! (we are always recruiting)

    Our project IRC room under the auspice of AIC(Anonymous Intelligence Collective)
    (moderator/guide rghosh)
    #iran.aic - WebIRC - AnonNet

    Our Etherpad design Doc
    Wishlist is in design doc

    This program was written by Aksis, Cygal, and Rakista
    In support of [url=]Why We Protest - IRAN[/url]  by the team at anonnet #iran.analysis
    hosted in [url=]Untitled Document[/url]
    [url=]EtherPad: hIhxXEcMNG[/url] < source file for test markers.js
    THIS IS LICENCED IN THE SPIRIT OF OPEN SOURCE (so please do share the code and improve upon it)
    About this project:
    This project is a google map mashup with a community editable database of events that are manually geotagged and verified
    Wish list:
    * add an event with a simple form
    * Timeline restriction: so you can see all the events from a specific timeperiod
    * make the map fullwidth
    * Comments under a events( maybe we put the marker in the wrong place)
    * add categories to events, importance, and be able to filter using different criterias
    *marks should fade after a preset time
    *add rating system to each event marker.  Suggested ratings; Twitter Rumor 1  Twitter Confirmed 2 , Photo Confirmed 3, Video Confirmed 4 
    Make sure to use alot of comments
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    <html xmlns="">
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                    <title>Untitled Document</title>
                    <script src=";v=2&amp;sensor=false&amp;key=ABQIAAAAq1fRR_iG8QhE-2o74L4bvxQWN_AikOu3D8WIZcNK6FvhLWxKTBRQ_fqsi0bxHsSMo8HX9HE2FdcexQ" type="text/javascript"></script>
                    <script src="markers.js" type="text/javascript"></script>
    <script type="text/javascript">
    function initialize() { 
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));           // map_canvas is the div object the map will be displayed on
        map.setCenter(new GLatLng(35.696189,51.422961), 13);
        function createEventMarker(one_event) {
          var marker = new GMarker(new GLatLng(one_event.latitude, one_event.longitude));
          GEvent.addListener(marker, "click",
              function() {
                      'Date: '+ + '<br />' +
                      'Event: <strong>' + one_event.description + '</strong>' +
                      '<a href="''">Source</a>');
          return marker;
        function loadAllMarkers() {
          for(var i = 0; i < markers.list.length; i++) {
            map.addOverlay(createEventMarker(markers.list[i])); // just remember you are passing a structure under list[i].childattributes
    <body onload="initialize()" onunload="GUnload()">
                <div id="map_canvas" style="width: 800px; height: 800px"></div>
    //=====================marker.js (a json database)===============
    var markers = {
      "list": [
        "date": "Sun Jun 21 17:27:58 2009",
        "latitude": "35.696189",
        "longitude": "51.422961",
        "mediatype": "url",
        "media": "'s_statement_number_5_to_Iranian_people",
        "description": "Supposed statement of Mousavi for the people English/Persian"
        "date": "Sun Jun 20 14:27:58 2009",
        "latitude": "35.696789",
        "longitude": "51.432961",
        "mediatype": "url",
        "media": "",
        "description": "Iranian Bus Workers Join the Resistance"
        "date": "Sun Jun 21 17:27:58 2009",
        "latitude": "35.676189",
        "longitude": "51.432961",
        "mediatype": "url",
        "media": "",
        "description": "21/06's protests in Tehran"
  2. akisis Member

    Our current source code for editing and improving(unless somebody else takes over)
    EtherPad: XqCZ1GsIkU <---- for index.html
    EtherPad: hIhxXEcMNG <---- the database'

    Oh and a vaguely similar closed source(by mibazzaar) is It covers only youtube video that has geotags in it, and is not community editable. But either way... is very sophisticated and slick :3. Would be fabulous if we can have him on our side, and is willing to assist us in our endeavor.
  3. Geraldanthro Member

    Genius just Genius.

    Awesome work guys.

  4. Vid

    I have a great deal of vid and other material already uploaded to my site which you're welcome to have or I can move over here once it's begun.

  5. Ver Greeneyes Member

    I was just thinking about something like this last night, good to see my thoughts echoed in the community. Web programming is not my forte but I'll see what I can do to help.
  6. rghosh Member

    Hi, I've been working on the concept of this, a bit, since I suggested the idea in irc a couple of days ago. Not sure if those who started this thread and the codebase saw my suggestion or arrived at the idea independently, but either way, sounds great.

    I was considering different possible views.
    • An isometric layout of the map tiles, with time as the vertical axis.
      • Map and timeline are scrollable by mouse-drag events in different sections of view
      • Events are projected down onto map with a line segment to precisely mark geolocation
    • A two-panel view; map in one and time filter in another (other panels could be added for, e.g. detailed event info)
      • The time filter could be just a calendar. Selecting the day determines what events show up on the map
      • The time filter could have week / day tabs, where each tab gives a simple interval filter
        • The "Week" tab allows user to choose day
        • The "Day" tab allows user to choose intra-day interval (e.g. split day into 3 hour intervals)
      • The time filter could be a timeline
        • Interaction could be similar to Timepedia Chronoscope Demo (although that widget is for timeseries data rather than timeline data; I was impressed by its excellent user interaction and its ability to handle huge amounts of data)

    Some questions to either resolve or leave as configurable:
    • What is the map filter?
      • What is visible in the timeline?
      • What is selected in the timeline? (assuming ability to select intervals)
    • Does choosing a time filter automatically change the geo-extents of the map? (This could be left as a checkmark for desired behaviour by the user)
    • For the 2-panel case, is there any graphic association between events on the map, and events on the timeline?
      • None
      • Visio-style orthogonal line-segment strings
      • numbers
      • letters (google maps does this when it shows locations matching search criteria on the map, with letter flags, and the same letters on the left-hand-side beside descriptions
  7. I'd like to help

    Please let me know if I can help.

    I have access to a VPS server.

    I'm a php/mysql developer with experience using Drupal and it's mapping modules Location and Mapping |

    A powerful example of what you're looking for could be created and deployed fairly quickly (~12 - 18 hours solid work)

    contact me at:
  8. Ver Greeneyes Member

    Some updates: map is full-width (or dynamic, rather) and I added a very simple form concept that doesn't do anything yet. We could do with separating style things into a css style sheet. Note I haven't worked with web stuff in years so I'm learning as I go; a professional could get this done a lot quicker. So far this is a combination of HTML, CSS and JavaScript - no PHP yet.
  9. Ver Greeneyes Member

    I'd like to, but it's banning my IP-address. I guess it doesn't like me using Tor to help Iran? (it says I'm listed as an open proxy)
  10. rghosh Member

    Ver: investigating

    update: from #iran

    (06:57:48 PM) w: rghosh:
    (06:57:53 PM) w: tell them
    (06:57:55 PM) w: to connect to lxkghnyg2owy6scd.onion

    from #help

    (06:57:34 PM) coldblood: you using tor?
    (06:57:50 PM) rghosh: the individual in question is, i believe
    (06:58:18 PM) coldblood: yet me get the tor node address
    (06:58:51 PM) coldblood: tell him to connect to lxkghnyg2owy6scd.onion
    (06:58:55 PM) coldblood: 6667
  11. Idris Member

  12. Drupal?

    I'm also a Drupal dev and would like to help out.

    I see 3 modules doing what you need:

    - Taxonomy (for categories)
    - GMap (and maybe some other mapping submodules)
    - Fivestar (for rating)

    I've personally used Fivestar & Taxonomy extensively and I know there are other Drupal people around who want to help.

    (i can be contacted in #iran.aic)
  13. Ver:

    (08:40:10 PM) clu-: but really
    (08:40:21 PM) clu-: what proof do we have it is no longer functioning as one or wont as soon as we unblock it?
    (08:40:28 PM) clu-: tell him to ssh into a shell and connect from that
    (08:40:30 PM) clu-: he must have one
    (08:40:46 PM) clu-: or some sort of vhost or another ip
    (08:40:51 PM) rghosh: ok i'll forward the message
    (08:40:52 PM) clu-: considering he managed a proxy
    (08:41:01 PM) clu-: if he doesnt let us know
    (08:41:04 PM) clu-: but im assuming he would have one
    (08:41:15 PM) clu-: we can try to work something else out of those solutions dont work
    (08:41:20 PM) clu-: if those*
  14. i've manually started tagging...

    i've started these google maps xe
    i'm not a coder of any kind and can only keep tagging on gmaps, what i find on twitter etc.
    how can we consolidate and collaborate on this?
    xarene @ gmail
  15. rghosh Member

    That is wonderful. I've added the link to the org doc (EtherPad: 37zHurnsK6) and the data will be added to the project before it goes live. Right now the project itself is in development.
  16. Ver Greeneyes Member

    I was hoping this was a case of 'innocent until proven guilty' ... oh well, I'll see what I can do with ssh.
  17. Drupal version UPDATE

    langworthy and I have started a Drupal version of this project here: Iran Map | Iran Map

    Using Gmap, Views & CCK we have the following setup:
    - Location content type (with ability to attach Photo and Video)

    What needs to be done:
    - "Click to add" location picker functionality needs to be implemented. It seems like gmap can already do this using "locpick". I ran into problems though as it doens't seem to be supported well.
    - Once this location picker is functionaing, i propose theming in the Location content type submit form into the marker popup. That way, users with access can easily add a Location and attach media to it without having to leave the map.

    Further discussion on IRC.
  18. Shasta Member

    I haven't worked much with Google Maps but I'm quite proficient in ArcGIS and MySQL and would be happy to provide some support for a project like this.
  19. Thanks Shasta for your interest, and yes we are always open for improvement, so pop around irc and maybe we can find a job for you.

    Just so you know, apart from some bug fixing, we are pretty much ready to start adding actual content to . So if you or anyone wants to contribute to the IRAN MAPPING PROJECT, do come around #iran.aic and express your interest to become editor to langworthy, nick and idris.
  20. akisis Member

  21. Vee Member

    Impressive work Guys.
  22. irisclara Member


    I wanted to make this map weeks ago but couldn't figure out how to attach pics and video to locations. Instead I made a Google Map called "Iran Election Protests" to list locations mentioned in Tweets from Iran. Please feel free to use any part of it that might help. Keep up the great work!
  23. Hi Guys,

    This is indeed an excellent piece of work.
    Can you possible link your DB into the work done by Iran Protest Schedule (Worldwide) | Yek Iran . com
    Go an take a look,

    It would be excellent if you could possibly show planned events using different colored
    flags and then add actual photos and footage.

    This would be a great DB for future planning while also showing what happened in the past.
    A little bit of cooperation will do wonders!!!!

    Good luck and keep up the good work.

Share This Page

Customize Theme Colors


Choose a color via Color picker or click the predefined style names!

Primary Color :

Secondary Color :
Predefined Skins