public function testRenderMarkersWithAutoOpenInfoWindow()
 {
     $map = new Map();
     $map->setJavascriptVariable('map');
     $map->addMarker($marker = new Marker());
     $marker->setJavascriptVariable('marker');
     $marker->getPosition()->setJavascriptVariable('marker_position');
     $marker->setInfoWindow($infoWindow = new InfoWindow());
     $infoWindow->setJavascriptVariable('marker_info_window');
     $infoWindow->setAutoOpen(true);
     $this->helper->renderMarkers($map->getMarkerCluster(), $map);
     $this->assertNotEmpty($map->getEventManager()->getEvents());
 }
    public function testRenderMarkers()
    {
        $map = new Map();
        $map->setJavascriptVariable('map');
        $map->addMarker($marker = new Marker());
        $marker->setJavascriptVariable('marker');
        $marker->getPosition()->setJavascriptVariable('marker_position');
        $expected = <<<EOF
map_container.markers.marker = marker = new google.maps.Marker({"position":marker_position});

EOF;
        $this->assertSame($expected, $this->helper->renderMarkers($map->getMarkerCluster(), $map));
    }
Esempio n. 3
0
 /**
  * Create empty map
  *
  * @param Coordinate $center
  * @param bool       $async
  *
  * @return Map
  * @throws \Ivory\GoogleMap\Exception\AssetException
  * @throws \Ivory\GoogleMap\Exception\MapException
  */
 public function createEmptyMap(Coordinate $center, bool $async = true) : Map
 {
     $map = new Map();
     $map->setLanguage('en');
     $map->setPrefixJavascriptVariable('map_');
     $map->setHtmlContainerId('map_canvas');
     $map->setMapOption('mapTypeId', MapTypeId::ROADMAP);
     $map->setAutoZoom(false);
     $map->setCenter($center);
     $map->setMapOption('zoom', 2);
     $map->setJavascriptVariable('location_map');
     $map->setAsync($async);
     $map->setStylesheetOptions(['width' => '100%', 'height' => '300px']);
     return $map;
 }
    public function testRender()
    {
        $map = new Map();
        $map->setJavascriptVariable('map');
        $map->getCenter()->setJavascriptVariable('map_center');
        $expected = <<<EOF
<div id="map_canvas" style="width:300px;height:300px;"></div>
<style type="text/css">
#map_canvas{
width:300px;
height:300px;
}
</style>
<script type="text/javascript">
function load_ivory_google_map_api () { google.load("maps", "3", {"other_params":"language=en&sensor=false"}); };
</script>
<script type="text/javascript" src="//www.google.com/jsapi?callback=load_ivory_google_map_api"></script>
<script type="text/javascript">
map_container = {"map":null,"coordinates":{},"bounds":{},"points":{},"sizes":{},"circles":{},"encoded_polylines":{},"ground_overlays":{},"polygons":{},"polylines":{},"rectangles":{},"info_windows":{},"marker_images":{},"marker_shapes":{},"markers":{},"marker_cluster":null,"kml_layers":{},"event_manager":{"dom_events":{},"dom_events_once":{},"events":{},"events_once":{}},"closable_info_windows":{},"functions":{"to_array":function (object) { var array = []; for (var key in object) { array.push(object[key]); } return array; }}};
map_container.coordinates.map_center = map_center = new google.maps.LatLng(0, 0, true);
map_container.map = map = new google.maps.Map(document.getElementById("map_canvas"), {"mapTypeId":google.maps.MapTypeId.ROADMAP,"zoom":3});
map.setCenter(map_center);
</script>

EOF;
        $this->assertSame($expected, $this->mapHelper->render($map));
    }