How implement a GIS Google Map with multiple occurencies

Hi all,

I would like to implement an application that takes addresses data from a SC table and then, by itself , create a grouped Google Map or something like that where I can check
different people of the group and their own address and data.
Have a look to result here : http://batchgeo.com/map/4a0d8c69e9ec83451ce5a4cd09759e25

Could then the map be visible under for instance as graph within a container ?
Thanks
Giovannino

GIS_SC_MEMBERS.jpg

PHP Class for showing multiple point and markers

please check my attachment, extractit, and load these 2 files as library:
simpleGMapAPI.php
simpleGMapGeocoder.php

you can use it, say it in a blank application, then simply call like this:


$map = new simpleGMapAPI();
$geo = new simpleGMapGeocoder();

//dimensi 600x600 pixel max utk versi GRaTiSaN
$map->setWidth(600);
$map->setHeight(600);
$map->setBackgroundColor('#d0d0d0');
$map->setMapDraggable(true);
$map->setDoubleclickZoom(false);
$map->setScrollwheelZoom(true);

$map->showDefaultUI(false);
$map->showMapTypeControl(true, 'DROPDOWN_MENU');
$map->showNavigationControl(true, 'DEFAULT');
$map->showScaleControl(true);
$map->showStreetViewControl(true);

$map->setZoomLevel(14); // not really needed because showMap is called in this demo with auto zoom
$map->setInfoWindowBehaviour('SINGLE_CLOSE_ON_MAPCLICK');
$map->setInfoWindowTrigger('CLICK');

$map->addMarkerByAddress("Ravensberger Park 1 , Bielefeld", "Ravensberger Spinnerei", "Ravensberger Spinnerei", "http://google-maps-icons.googlecode.com/files/museum-historical.png");
$map->addMarkerByAddress("Universit?tsstra?e 25, Bielefeld", "Universit?t Bielefeld", "<a href=\"http://www.uni-bielefeld.de\" target=\"_blank\">http://www.uni-bielefeld.de</a>", "http://google-maps-icons.googlecode.com/files/university.png");
$map->addMarker(52.0149436, 8.5275128, "Sparrenburg Bielefeld", "Sparrenburg, 33602 Bielefeld, Deutschland<br /><img src=\"http://www.bielefeld.de/ftp/bilder/sehenswuerdigkeiten/sehenswuerdigkeiten/sparrenburg-bielefeld-435.gif\"", "http://google-maps-icons.googlecode.com/files/museum-archeological.png");

$opts = array('fillColor'=>'#0000dd', 'fillOpacity'=>0.2, 'strokeColor'=>'#000000', 'strokeOpacity'=>1, 'strokeWeight'=>2, 'clickable'=>true);
$map->addCircle(52.0149436, 8.5275128, 1500, "1,5km Umgebung um die Sparrenburg", $opts);

$opts = array('fillColor'=>'#00dd00', 'fillOpacity'=>0.2, 'strokeColor'=>'#003300', 'strokeOpacity'=>1, 'strokeWeight'=>2, 'clickable'=>true);
$map->addRectangle(52.0338, 8.487, 52.0414, 8.502, "Campus Universit?t Bielefeld", $opts);

echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
";
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">
";
echo "<head>
";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
";
echo "<title>simpleGMapAPI test</title>";

$map->printGMapsJS();

echo "</head>
";
echo "

<body>

";

// showMap with auto zoom enabled, kalo set false, harus isi zoom levelnya
$map->showMap(true);

echo "</body>
";
echo "</html>
";

please check more carefully in this section:


$map->addMarkerByAddress("Ravensberger Park 1 , Bielefeld", "Ravensberger Spinnerei", "Ravensberger Spinnerei", "http://google-maps-icons.googlecode.com/files/museum-historical.png");
$map->addMarkerByAddress("Universit?tsstra?e 25, Bielefeld", "Universit?t Bielefeld", "<a href=\"http://www.uni-bielefeld.de\" target=\"_blank\">http://www.uni-bielefeld.de</a>", "http://google-maps-icons.googlecode.com/files/university.png");
$map->addMarker(52.0149436, 8.5275128, "Sparrenburg Bielefeld", "Sparrenburg, 33602 Bielefeld, Deutschland<br /><img src=\"http://www.bielefeld.de/ftp/bilder/sehenswuerdigkeiten/sehenswuerdigkeiten/sparrenburg-bielefeld-435.gif\"", "http://google-maps-icons.googlecode.com/files/museum-archeological.png");

you can use array multi dimension for handling the latlong data (but still i have trouble passing a multi diension array to blank application from other application).

i hope this simple example will help you showing many points and markers. it seems using Google Map API V.3 already. you don’t need any API key.
this example using blank application and still i don’t have any idea how to “close” this blank application when it shows as modal. so i use blank application to open in another window (target _blank). and let the users close the window after they see the map :stuck_out_tongue:

simpleGMapAPI_v0.1.3.zip (15.4 KB)

Hi iwanpc, could you upload the api?s again? it is not longer available… thank you!

Hi Ivan, thanks so much for interesting post. I will try to implement it also if I’m not so confident with complex coding ;-))
I’ve tried to download the file but It seems not availble.
Bye

@iwanpc the download is available again… but: I insert the the both libaries (with upload) as project libaries.
now, I tried to create a blank app and paste the test php… but I get an error, with the tags ?> and <? like:

?>
require_once("simpleGMapAPI.php");
require_once("simpleGMapGeocoder.php");

$map = new simpleGMapAPI();
$geo = new simpleGMapGeocoder();

$map->setWidth(600);
$map->setHeight(600);
$map->setBackgroundColor('#d0d0d0');
$map->setMapDraggable(true);
$map->setDoubleclickZoom(false);
$map->setScrollwheelZoom(true);

$map->showDefaultUI(false);
$map->showMapTypeControl(true, 'DROPDOWN_MENU');
$map->showNavigationControl(true, 'DEFAULT');
$map->showScaleControl(true);
$map->showStreetViewControl(true);

$map->setZoomLevel(14); // not really needed because showMap is called in this demo with auto zoom
$map->setInfoWindowBehaviour('SINGLE_CLOSE_ON_MAPCLICK');
$map->setInfoWindowTrigger('CLICK');

$map->addMarkerByAddress("Ravensberger Park 1 , Bielefeld", "Ravensberger Spinnerei", "Ravensberger Spinnerei", "http://google-maps-icons.googlecode.com/files/museum-historical.png");
$map->addMarkerByAddress("Universit?tsstra?e 25, Bielefeld", "Universit?t Bielefeld", "<a href="http://www.uni-bielefeld.de" target="_blank">http://www.uni-bielefeld.de</a>", "http://google-maps-icons.googlecode.com/files/university.png");
$map->addMarker(52.0149436, 8.5275128, "Sparrenburg Bielefeld", "Sparrenburg, 33602 Bielefeld, Deutschland<br /><img src="http://www.bielefeld.de/ftp/bilder/sehenswuerdigkeiten/sehenswuerdigkeiten/sparrenburg-bielefeld-435.gif"", "http://google-maps-icons.googlecode.com/files/museum-archeological.png");

$opts = array('fillColor'=>'#0000dd', 'fillOpacity'=>0.2, 'strokeColor'=>'#000000', 'strokeOpacity'=>1, 'strokeWeight'=>2, 'clickable'=>true);
$map->addCircle(52.0149436, 8.5275128, 1500, "1,5km Umgebung um die Sparrenburg", $opts);

$opts = array('fillColor'=>'#00dd00', 'fillOpacity'=>0.2, 'strokeColor'=>'#003300', 'strokeOpacity'=>1, 'strokeWeight'=>2, 'clickable'=>true);
$map->addRectangle(52.0338, 8.487, 52.0414, 8.502, "Campus Universit?t Bielefeld", $opts);

echo "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
";
echo "<html xmlns="http://www.w3.org/1999/xhtml">
";
echo "<head>
";
echo "<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
";
echo "<title>simpleGMapAPI test</title>";

$map->printGMapsJS();

echo "</head>
";
echo "

<body>

";

// showMap with auto zoom enabled
$map->showMap(true);

echo "</body>
";
echo "</html>
";

<?

I get output like:

require_once("simpleGMapAPI.php"); require_once("simpleGMapGeocoder.php"); $map = new simpleGMapAPI(); $geo = new simpleGMapGeocoder(); $map->setWidth(600); $map->setHeight(600); $map->setBackgroundColor('#d0d0d0'); $map->setMapDraggable(true); $map->setDoubleclickZoom(false); $map->setScrollwheelZoom(true); $map->showDefaultUI(false); $map->showMapTypeControl(true, 'DROPDOWN_MENU'); $map->showNavigationControl(true, 'DEFAULT'); $map->showScaleControl(true); $map->showStreetViewControl(true); $map->setZoomLevel(14); $map->setInfoWindowBehaviour('SINGLE_CLOSE_ON_MAPCLICK'); $map->setInfoWindowTrigger('CLICK'); $map->addMarkerByAddress("Ravensberger Park 1 , Bielefeld", "Ravensberger Spinnerei", "Ravensberger Spinnerei", "http://google-maps-icons.googlecode.com/files/museum-historical.png"); $map->addMarkerByAddress("UniversitÀtsstra?Ÿe 25, Bielefeld", "UniversitÀt Bielefeld", "http://www.uni-bielefeld.de", "http://google-maps-icons.googlecode.com/files/university.png"); $map->addMarker(52.0149436, 8.5275128, "Sparrenburg Bielefeld", "Sparrenburg, 33602 Bielefeld, Deutschland
'#0000dd', 'fillOpacity'=>0.2, 'strokeColor'=>'#000000', 'strokeOpacity'=>1, 'strokeWeight'=>2, 'clickable'=>true); $map->addCircle(52.0149436, 8.5275128, 1500, "1,5km Umgebung um die Sparrenburg", $opts); $opts = array('fillColor'=>'#00dd00', 'fillOpacity'=>0.2, 'strokeColor'=>'#003300', 'strokeOpacity'=>1, 'strokeWeight'=>2, 'clickable'=>true); $map->addRectangle(52.0338, 8.487, 52.0414, 8.502, "Campus UniversitÀt Bielefeld", $opts); echo "
"; echo "
"; echo "
"; echo "
"; echo ""; $map->printGMapsJS(); echo "
"; echo "



"; $map->showMap(true); echo "
"; echo "
";

Could you imagine whats wrong?

btw: sch?ne Gr??e von Dresden nach Bielefeld :wink:

Hi iawnpc,

lol, I did not checked that you wrote me, sorry… You code works nearly fine, but google says that we need from now a API key, I solved it by using:

?>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOURAPICODE&callback=initMap"
  type="text/javascript"></script>
<?

But I get an Error:
{ “error_message” : “Invalid request. One of the input parameters contains a non-UTF-8 string.”, “results” : [], “status” : “INVALID_REQUEST” } I work now with SC9.2 :wink: