Add methods to map managers to display a Bing map or a Google map for geofence. #221
This commit is contained in:
parent
3ed9b1bfcd
commit
4c3092ac58
4 changed files with 70 additions and 12 deletions
|
|
@ -4,7 +4,35 @@ namespace App\Service;
|
||||||
|
|
||||||
class BingMapManager implements MapManagerInterface
|
class BingMapManager implements MapManagerInterface
|
||||||
{
|
{
|
||||||
public function jsDisplayMap()
|
public function jsGeofence()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
echo "<script type='text/javascript' src='http://www.bing.com/api/maps/mapcontrol?callback=GetMap&key={{ bingmaps_api_key }}' async defer></script>" . "\n";
|
||||||
|
echo "<script>" . "\n";
|
||||||
|
echo "var polygons = new Array();" . "\n";
|
||||||
|
|
||||||
|
echo "function GetMap() {" . "\n";
|
||||||
|
echo "var map = new Microsoft.Maps.Map('#m_geomap', {" . "\n";
|
||||||
|
echo " center: new Microsoft.Maps.Location(14.6091, 121.0223)," . "\n";
|
||||||
|
echo " mapTypeId: Microsoft.Maps.MapTypeId.road," . "\n";
|
||||||
|
echo " zoom: 13 });" . "\n";
|
||||||
|
|
||||||
|
echo "{% if areas %}" . "\n";
|
||||||
|
echo " {% for obj in areas %}" . "\n";
|
||||||
|
echo " var pointsArray = new Array();" . "\n";
|
||||||
|
echo " {% for point in obj.getCoverageArea.getRing(0).getPoints() %}" . "\n";
|
||||||
|
echo " var polylatlng = new Microsoft.Maps.Location(" . "\n";
|
||||||
|
echo " {{ point.getLatitude }}," . "\n";
|
||||||
|
echo " {{ point.getLongitude }});" . "\n";
|
||||||
|
echo " pointsArray.push(polylatlng);" . "\n";
|
||||||
|
echo " {% endfor %}" . "\n";
|
||||||
|
echo " var coveredarea = new Microsoft.Maps.Polygon(pointsArray, {" . "\n";
|
||||||
|
echo " fillColor: \"#FF0000\" });" . "\n";
|
||||||
|
echo " map.entities.push(coveredarea);" . "\n";
|
||||||
|
echo " polygons[{{ obj.getID}}] = coveredarea;" . "\n";
|
||||||
|
echo " {% endfor %}" . "\n";
|
||||||
|
echo "{% endif %} }" . "\n";
|
||||||
|
echo "</script>". "\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,41 @@
|
||||||
|
|
||||||
namespace App\Service;
|
namespace App\Service;
|
||||||
|
|
||||||
class GoogleMapManager
|
class GoogleMapManager implements MapManagerInterface
|
||||||
{
|
{
|
||||||
|
public function jsGeofence()
|
||||||
|
{
|
||||||
|
echo "<script src=\"//maps.google.com/maps/api/js?key={{ gmaps_api_key }}\" type=\"text/javascript\"></script>" . "\n";
|
||||||
|
echo "<script src=\"/assets/vendors/custom/gmaps/gmaps.js\" type=\"text/javascript\"></script>" . "\n";
|
||||||
|
echo "<script>" . "\n";
|
||||||
|
echo "var polygons = new Array();" . "\n";
|
||||||
|
|
||||||
|
echo "initMap();" . "\n";
|
||||||
|
|
||||||
|
echo "function initMap() {" . "\n";
|
||||||
|
echo "var map = new google.maps.Map(document.getElementById('m_geomap'), {" . "\n";
|
||||||
|
echo " center: {lat: 14.6091, lng: 121.0223}," . "\n";
|
||||||
|
echo " mapTypeId: 'roadmap'," . "\n";
|
||||||
|
echo " zoom: 13 });" . "\n";
|
||||||
|
|
||||||
|
echo "{% if areas %}" . "\n";
|
||||||
|
echo " {% for obj in areas %}" . "\n";
|
||||||
|
echo " var pointsArray = new Array();" . "\n";
|
||||||
|
echo " {% for point in obj.getCoverageArea.getRing(0).getPoints() %}" . "\n";
|
||||||
|
echo " var polylatlng = new google.maps.LatLng(" . "\n";
|
||||||
|
echo " {{ point.getLatitude }}," . "\n";
|
||||||
|
echo " {{ point.getLongitude }});" . "\n";
|
||||||
|
echo " pointsArray.push(polylatlng);" . "\n";
|
||||||
|
echo " {% endfor %}" . "\n";
|
||||||
|
echo " var coveredarea = new google.maps.Polygon(pointsArray, {" . "\n";
|
||||||
|
echo " paths: pointsArray," . "\n";
|
||||||
|
echo " fillColor: \"#FF0000\"," . "\n";
|
||||||
|
echo " fillOpacity: .5," . "\n";
|
||||||
|
echo " mapTypeId: 'roadmap' });" . "\n";
|
||||||
|
echo " coveredarea.setMap(map);" . "\n";
|
||||||
|
echo " polygons[{{ obj.getID}}] = coveredarea;" . "\n";
|
||||||
|
echo " {% endfor %}" . "\n";
|
||||||
|
echo "{% endif %} }" . "\n";
|
||||||
|
echo "</script>". "\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,12 @@ namespace App\Service;
|
||||||
|
|
||||||
interface MapManagerInterface
|
interface MapManagerInterface
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* Return a map to be used to display location
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function jsDisplayMap();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return a map with polygons to show coverage areas
|
* Return javascript text with map and polygons to show coverage areas
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//public function jsGeofence();
|
public function jsGeofence();
|
||||||
|
|
||||||
//public function jsJobOrderDetails();
|
//public function jsJobOrderDetails();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
<div class="m-portlet__body">
|
<div class="m-portlet__body">
|
||||||
<div class="form-group m-form__group row">
|
<div class="form-group m-form__group row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div id="m_bingmap" style="height:600px;"></div>
|
<div id="m_geomap" style="height:600px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id = "area-rows" class="form-group m-form__group row">
|
<div id = "area-rows" class="form-group m-form__group row">
|
||||||
|
|
@ -90,7 +90,7 @@ var polygons = new Array();
|
||||||
|
|
||||||
function GetMap()
|
function GetMap()
|
||||||
{
|
{
|
||||||
var map = new Microsoft.Maps.Map('#m_bingmap', {
|
var map = new Microsoft.Maps.Map('#m_geomap', {
|
||||||
center: new Microsoft.Maps.Location(14.6091, 121.0223),
|
center: new Microsoft.Maps.Location(14.6091, 121.0223),
|
||||||
mapTypeId: Microsoft.Maps.MapTypeId.road,
|
mapTypeId: Microsoft.Maps.MapTypeId.road,
|
||||||
zoom: 13
|
zoom: 13
|
||||||
|
|
@ -109,7 +109,7 @@ function GetMap()
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
var coveredarea = new Microsoft.Maps.Polygon(pointsArray, {
|
var coveredarea = new Microsoft.Maps.Polygon(pointsArray, {
|
||||||
fillColor: "#FF0000",
|
fillColor: "#FF0000"
|
||||||
});
|
});
|
||||||
map.entities.push(coveredarea);
|
map.entities.push(coveredarea);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue