Meet geocubes @ IT Profits

Get in touch with us and meet our geocubes team at the IT Profits in Berlin. We will give a presentation about Geotagging in the use of Web 2.0 on Thursday, 25 June 2009, between 12.30 - 15.00 in Hall 7.2.

Please contact us for free tickets to the trade show.

See you there!

For further information on IT Profits
http://www1.messe-berlin.de/vip8_1/website/MesseBerlin/htdocs/www.it-profits/index_e/index.html

1.25 million photos clustered by geocubes!

The web based project Geograph British Isles successfully implementend geocubes on its website. geocubes clusters 1.25 million photos of the British landscape. The aim of the website is to offer a freely accessible archive of educationally useful, geographically located photographs of the British Isles. The respectable amount of 1,25 million photos didn't pose any problem to geocubes since our service works always independent from the number of geo-points at the same high level of performance.

  Please check out http://www.geograph.org.uk/mapper/clusters.php!

Filtering geocubes - New Javascript API Update

New javascript functions for geocubes filtering:

After you set one or more filters you have to call the function renderFilter so that the geocubes overlay on your map is reloaded and the filters become active.
renderFilter(); 

Function orFilter means that one of these values can occur, if you set more than one.

Adds a filter to the geocubes map overlay.
orFilter(int field, int operator, int value);

Releases a filter from the geocubes map overlay.
orFilterRelease(int field, int operator, int value);

int field:
GC_FD1
GC_FD2
These are the two optional integer Fields from the client Library, which you can set, if you add a point.

int operator:
GC_EQ - means "field" have to be equal "value", both are integer

int value:
32 Bit signed integer. That is the value which is compared to the optional fields (int field) in our Database. 

 

Function andFilter means that all values must occur.

Adds a filter to the geocubes map overlay.
andFilter(int field, int operator, int value);

Releases a Filter from the geocubes map overlay.
andFilterRelease(int field, int operator, int value);

int field:
GC_FD1
GC_FD2
These are the two optional integer Fields from the client library, which you can set, if you add a point.

int operator:
GC_EQ - means "field" has to be equal "value", both are integer
- more operators like "lower than" or "greater than" will be added soon

int value:
32 Bit signed integer. That is the value which is compared to the optional fields (int field) in our Database. 

 

First Example Javascript:
var gc = new geocubes(map, key);
...code...
// show all geo-points where optional field1 is 33 OR 54 OR 128
gc.orFilter(GC_FD1, GC_EQ, 33);
gc.orFilter(GC_FD1, GC_EQ, 54);
gc.orFilter(GC_FD1, GC_EQ, 128);
gc.renderFilter();

window.setTimeout(function () {

    // release filters after 5 seconds
    gc.orFilterRelease(GC_FD1, GC_EQ, 33);
    gc.orFilterRelease(GC_FD1, GC_EQ, 54);
    gc.orFilterRelease(GC_FD1, GC_EQ, 128);
    gc.renderFilter();

}, 5000);
...code...

 

Second Example:
...code...
// show all geo-points where optional field1 is 12 AND optional field2 is 8
gc.andFilter(GC_FD1, GC_EQ, 12);
gc.andFilter(GC_FD2, GC_EQ, 8);
gc.renderFilter();
...code...

 

You can set Text Filtering for the free text field by the geocubes client library.
Searches through all geo-points that CONTAINS "value" in the free text field.

Adds a text filter to geocubes map overlay.
textFilter(string value);

Releases the text filter from the geocubes map overlay.
textFilterRelease(); 

Example:
...code...
gc.textFilter("mykeyword");

window.setTimeout(function() {
    // resets text filter after 5 seconds.
    gc.textFilterRelease();
}, 5000);
...code.... 

Releases all filters you set by function andFilter, orFilter, textFilter
releaseFilters();

 

See Javascript API Reference for further Information.

Filtering geocubes - PHP Library Update 1.3

During the last weeks we received some feature requests by geocubes users and friends. One of their wishes was to provide a function to filter the geo-points displayed with geocubes. We recognized the importance of this feature and started improving geocubes immediately. And here is the result: 

We added three new OPTIONAL parameters for function "addPoint". Don't worry: you don't have to change your application, because the parameters have default values.

If you want to use the new parameters please download a new version of the geocubes PHP Library and install it as usual considering the settings of the new features as described below.

$freetext - 255 bytes free text field. Explanation below.
$opt_field1 - 32 bit signed integer field. If your geo-point belongs to a category, you can set the category ID here.
$opt_field2 - 32 bit signed integer field. If your point has more properties. You can define the properties here.

Function "addPoint()" looks like this now:

$gc_object->addPoint($unique_id, $latitude, $longitude, $freetext = "", $opt_field1 = 0, $opt_field2 = 0);

Note: You can retrieve this fields as a parameter in our Javascript API function "setCallback()".

Testing example:

1. Add a point to an empty area of your map. Define the value of the parameter "$opt_field1" as "57":
$gc_object->addPoint(9999999, 51.24232, 14.4324234, '', 57);

2. put the following code into the javascript source code of your website:
gc.setCallback(GC_CB_ONCREATEPOINT, function (marker, unique_id, freetext, opt_field1, opt_field2) {

        if (opt_field1 != 0)
        alert("point id: " + unique_id + ", opt_field1 has a value of: " + opt_field1);

});

This will popup an alert message if your point marker overlay is created on the map. The Message will be: "point id: X, opt_field1 has a value of: 57"
E.g. you can use it to divide geo-points into categories and change the icons.

- the same for "$opt_field2" -

Field "$freetext" is used for text search and filtering. You can set free text here as you like, e.g. keywords or phrases or something else - limited to 255 bytes. 

PLEASE NOTE if you use UTF-8 characters: The size of 1 UTF-8 character can be more than 1 Byte. If you add text with a total size of more than 255 bytes, then it will be truncated automatically.
See also: http://de.wikipedia.org/wiki/UTF-8 (1 UTF8 character can have a size of 4 bytes)

 

Please read the geocubes PHP Library documentation for further information.

geocubes JS API Update

Today we've updated geocubes Javascript API and added a couple of new features.

You can now set 4 new different callback types for the function "setCallback".

Here is a short overview:

GC_CB_ONCREATEPOINT
Description: This one will be called before the overlay of the point is added to the map. E.g. you can change the design of the point depending on the parameters you saved.

GC_CB_ONCREATECLUSTER
Description: Same for the clusters.

GC_CB_ONLOADSTART
Description: This one will be called every time a request will be send to the geocubes server to fetch the overlays. If a user moves the map or zooms in/out, it sends a request to the geocubes server. This can be useful for loading bars, for example.

GC_CB_ONLOADSTART
Description: Is called when points are fetched from the geocubes server and are all added to the map. This can be useful for loading bars, too.

See our Javascript API documentation for further information.

For real life examples look into the source code of our website http://www.qmapr.com or contact me if you need help.

 

geocubes clusters Qype! Check out for www.qmapr.com!

We recently finished our version for the Qype map, showing 410.000 places of interest in the whole world. The Website Qmapr.com offers an advanced map search with a filtering solution and a full text search. 

That means you may check out different categories like restaurants and museums at the same time, visualized by different icons on the same map. 

You may also look for all pizza restaurants in your city, which will be displayed on the map.