{"id":914,"date":"2024-06-10T10:08:42","date_gmt":"2024-06-10T08:08:42","guid":{"rendered":"https:\/\/bmlaw.agenturschmucki.ch\/kontakt\/"},"modified":"2026-02-09T16:51:27","modified_gmt":"2026-02-09T15:51:27","slug":"contact","status":"publish","type":"page","link":"https:\/\/bmlaw.ch\/en\/contact\/","title":{"rendered":"Contact"},"content":{"rendered":"\n<p><\/p>\n\n\n<section \n     \n  class=\"content-section content-section--light contact_section wp-block-content-section container\" \n  style=\"\">\n\n    <div class=\"content-section__inner-blocks container__inner-blocks\">\n      <div class=\"acf-innerblocks-container\">\n\n<h2 class=\"wp-block-heading\">Get in touch!<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Baumgartner M\u00e4chler Rechtsanw\u00e4lte AG<br>L\u00f6wenstrasse 2<br>8001 Z\u00fcrich<\/p>\n\n\n\n<p class=\"link-primary\"><a href=\"tel:+41442154477\" data-type=\"tel\" data-id=\"tel:+41442154477\">T +41 44 215 44 77<\/a><\/p>\n\n\n\n<p class=\"link-primary\"><a href=\"mailto:office@bmlaw.ch\" target=\"_blank\" rel=\"noreferrer noopener\">office@bmlaw.ch<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Baumgartner M\u00e4chler Rechtsanw\u00e4lte AG<br>Zeughausgasse 29<br>3011 Bern<\/p>\n\n\n\n<p class=\"link-primary\"><a href=\"tel:+41442154477\" data-type=\"tel\" data-id=\"tel:+41442154477\">T +41 31 311 09 10<\/a><\/p>\n\n\n\n<p class=\"link-primary\"><a href=\"mailto:office@bmlaw.ch\" target=\"_blank\" rel=\"noreferrer noopener\">office@bmlaw.ch<\/a><\/p>\n<\/div>\n<\/div>\n\n<\/div>\n    <\/div>\n\n<\/section>\n\n\n<section \n     \n  class=\"content-section content-section--light contact_map_section wp-block-content-section container\" \n  style=\"\">\n\n    <div class=\"content-section__inner-blocks container__inner-blocks\">\n      <div class=\"acf-innerblocks-container\">\n<div class=\"map-container\" id=\"map-69f59ef99fe40\" style=\"width: 100%; height: 800px;\"><\/div>\n<script>\n\t(g => {\n\t\tvar h, a, k, p = \"The Google Maps JavaScript API\",\n\t\t\tc = \"google\",\n\t\t\tl = \"importLibrary\",\n\t\t\tq = \"__ib__\",\n\t\t\tm = document,\n\t\t\tb = window;\n\t\tb = b[c] || (b[c] = {});\n\t\tvar d = b.maps || (b.maps = {}),\n\t\t\tr = new Set,\n\t\t\te = new URLSearchParams,\n\t\t\tu = () => h || (h = new Promise(async (f, n) => {\n\t\t\t\tawait (a = m.createElement(\"script\"));\n\t\t\t\te.set(\"libraries\", [...r] + \"\");\n\t\t\t\tfor (k in g) e.set(k.replace(\/[A-Z]\/g, t => \"_\" + t[0].toLowerCase()), g[k]);\n\t\t\t\te.set(\"callback\", c + \".maps.\" + q);\n\t\t\t\ta.src = `https:\/\/maps.${c}apis.com\/maps\/api\/js?` + e;\n\t\t\t\td[q] = f;\n\t\t\t\ta.onerror = () => h = n(Error(p + \" could not load.\"));\n\t\t\t\ta.nonce = m.querySelector(\"script[nonce]\")?.nonce || \"\";\n\t\t\t\tm.head.append(a)\n\t\t\t}));\n\t\td[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n))\n\t})({\n\t\tkey: \"AIzaSyC-0-egJqQfBQte3pahlq_43rGC2jYo6DA\",\n\t\tv: \"weekly\"\n\t});\n\n\tlet map;\n\tlet styleJSON = [\n  {\n    \"featureType\": \"poi.business\",\n    \"stylers\": [\n      {\n        \"visibility\": \"off\"\n      }\n    ]\n  },\n  {\n    \"featureType\": \"poi.park\",\n    \"elementType\": \"labels.text\",\n    \"stylers\": [\n      {\n        \"visibility\": \"off\"\n      }\n    ]\n  }\n];\n\tconst markers = [{\"address\":\"L\\u00f6wenstrasse 2  8001 Z\\u00fcrich\",\"marker\":\"https:\\\/\\\/bmlaw.ch\\\/app\\\/uploads\\\/2024\\\/06\\\/map-marker.svg\"},{\"address\":\"Zeughausgasse 29  3011 Bern\",\"marker\":\"https:\\\/\\\/bmlaw.ch\\\/app\\\/uploads\\\/2024\\\/06\\\/map-marker.svg\"}];\n\n\tasync function initMap() {\n\t\tconst { Map } = await google.maps.importLibrary(\"maps\");\n\t\tconst geocoder = new google.maps.Geocoder();\n\t\tconst bounds = new google.maps.LatLngBounds();\n\t\tlet geocodePromises = [];\n\n\t\t\/\/ Geocode all addresses\n\t\tmarkers.forEach((markerData, index) => {\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tgeocoder.geocode({ 'address': markerData.address }, function(results, status) {\n\t\t\t\t\tif (status === 'OK') {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tposition: results[0].geometry.location,\n\t\t\t\t\t\t\ticon: markerData.marker || null,\n\t\t\t\t\t\t\taddress: markerData.address\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error('Geocode was not successful for address: ' + markerData.address + ' - ' + status);\n\t\t\t\t\t\tresolve(null);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tgeocodePromises.push(promise);\n\t\t});\n\n\t\tPromise.all(geocodePromises).then((results) => {\n\t\t\tconst validResults = results.filter(result => result !== null);\n\t\t\t\n\t\t\tif (validResults.length === 0) return;\n\n\t\t\tvar mapOptions = {};\n\n\t\t\t\t\t\ttry {\n\t\t\t\tif (styleJSON) {\n\t\t\t\t\tmapOptions.styles = styleJSON;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Invalid JSON for map styling');\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ If only one marker, use zoom and center it\n\t\t\tif (validResults.length === 1) {\n\t\t\t\tmapOptions.zoom = 18;\n\t\t\t\tmapOptions.center = validResults[0].position;\n\t\t\t}\n\n\t\t\tmap = new google.maps.Map(document.getElementById('map-69f59ef99fe40'), mapOptions);\n\n\t\t\t\/\/ Add markers and extend bounds\n\t\t\tvalidResults.forEach((result) => {\n\t\t\t\tconst marker = new google.maps.Marker({\n\t\t\t\t\tposition: result.position,\n\t\t\t\t\tmap: map,\n\t\t\t\t\ticon: result.icon || undefined,\n\t\t\t\t});\n\n\t\t\t\t\/\/ Add click listener to open Google Maps with address search\n\t\t\t\tmarker.addListener('click', function() {\n\t\t\t\t\tconst encodedAddress = encodeURIComponent(result.address);\n\t\t\t\t\tconst url = `https:\/\/www.google.com\/maps\/search\/?api=1&query=${encodedAddress}`;\n\t\t\t\t\twindow.open(url, '_blank');\n\t\t\t\t});\n\n\t\t\t\tbounds.extend(result.position);\n\t\t\t});\n\n\t\t\t\/\/ Fit bounds if multiple markers with intelligent zoom handling\n\t\t\tif (validResults.length > 1) {\n\t\t\t\t\/\/ Add padding to bounds to ensure markers aren't at the edge\n\t\t\t\tconst padding = {\n\t\t\t\t\ttop: 50,\n\t\t\t\t\tright: 50,\n\t\t\t\t\tbottom: 50,\n\t\t\t\t\tleft: 50\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tmap.fitBounds(bounds, padding);\n\t\t\t\t\n\t\t\t\t\/\/ Prevent excessive zoom out for widely spread markers\n\t\t\t\tgoogle.maps.event.addListenerOnce(map, 'bounds_changed', function() {\n\t\t\t\t\tconst currentZoom = map.getZoom();\n\t\t\t\t\tconst minZoom = 8; \/\/ Minimum useful zoom level\n\t\t\t\t\tconst maxZoom = 15; \/\/ Maximum zoom for multiple markers\n\t\t\t\t\t\n\t\t\t\t\tif (currentZoom < minZoom) {\n\t\t\t\t\t\tmap.setZoom(minZoom);\n\t\t\t\t\t\t\/\/ Center on the first marker when zoomed out too much\n\t\t\t\t\t\tif (validResults.length > 0) {\n\t\t\t\t\t\t\tmap.setCenter(validResults[0].position);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (currentZoom > maxZoom) {\n\t\t\t\t\t\tmap.setZoom(maxZoom);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ Add map click listener\n\t\t\tmap.addListener('click', function(event) {\n\t\t\t\t\/\/ For map clicks, use coordinates as fallback\n\t\t\t\tconst url = `https:\/\/www.google.com\/maps\/search\/?api=1&query=${event.latLng.lat()},${event.latLng.lng()}`;\n\t\t\t\twindow.open(url, '_blank');\n\t\t\t});\n\t\t});\n\t}\n\n\tinitMap();\n<\/script>\n\n\n<\/div>\n    <\/div>\n\n<\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-914","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/pages\/914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/comments?post=914"}],"version-history":[{"count":8,"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/pages\/914\/revisions"}],"predecessor-version":[{"id":1461,"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/pages\/914\/revisions\/1461"}],"wp:attachment":[{"href":"https:\/\/bmlaw.ch\/en\/wp-json\/wp\/v2\/media?parent=914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}