How to retrieve the current zoom level of a map in Angular 2

I am facing an issue with my custom map where the markers are not aligning properly when zoomed in. Currently, I am using an overlayview as a marker and setting the center point of the marker in the file google-maps-types.ts. What I need is a way to retrieve the current zoom level and adjust the center point of the marker accordingly.

You can view a demonstration on PLUNKER. Essentially, I am looking for a solution to obtain the current zoom level in google-map-types.ts so I can dynamically change the position of the marker. Alternatively, I would like to access the position of the marker in directives/google-map.ts.

I have attempted to retrieve the zoom level in google-map-types but without success. The code snippet below demonstrates my unsuccessful attempt:

this.overlayView.getZoom = function () {
  console.log(this._mapsWrapper);

  google.maps.event.addDomListener(this._mapsWrapper,'zoom_changed', function(event: any) {
    google.maps.event.trigger(this._mapsWrapper, "zoom_changed");
    console.log(this._mapsWrapper);
    var zoom =  this._mapsWrapper.getZoom();
    console.log(zoom);
  });
}

Additionally, I am considering adjusting the top position of the overlay by adding ...px. Is there a better approach to achieve this in google-map.ts?

If anyone has insights or solutions regarding this issue, your assistance would be greatly appreciated!

Answer №1

According to the documentation, google.maps.OverlayView offers support for the function getMap(). This allows you to easily retrieve the zoom level from within your overlayView object, as demonstrated below:

this.overlayView.getZoom = function () {
  var my_map = this.overlayView.getMap();
  if(my_map){ // In some cases, the map may not be set yet and is only initialized after adding the overlay to the map
      return my_map.getZoom();
  }
  return null;
}

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

how to share a variable across multiple ts files in an Angular project

In the home.component.ts file, I have a variable named name that I want to access globally in all files. Can anyone please suggest how can I achieve this? Below is the code snippet: app.component.html <nav aria-label="breadcrumb"> <ol class= ...

Implementing conditional data binding in Angular with ngIf directive

I've been struggling to showcase recipes from a specific food category. I'm attempting to iterate through an array of recipes within a parent component. <div class="row"> <div class="col-xs-8" *ngIf="{{ recipe.category }} === mexican" ...

Issues with implementing Firebase Phone Authentication in Ionic 3

When trying to authenticate a phone number in Ionic 3 using Firebase, the program runs without error. However, after entering the phone number, nothing happens... The .html code is shown below: <ion-item> <ion-label stacked>Phone Number</i ...

How to implement separate environment.ts files for different languages in Angular 12? For example, environment.en.ts and environment.de.ts files

Recently, I've been developing a multi-language Angular application and successfully deployed it to Firebase hosting. If you visit , you'll see the German version. On the other hand, displays the English version of the app. One challenge I enc ...

Unique: "Unique One-Step Deviation in Date Comparison"

A Little Background Information: I am working with data points that span from the current day to 5 days ahead, in 3-hour intervals (such as 10pm, 1am, 4am, 7am...). My goal is to organize these data points into arrays sorted by date, with each array repre ...

Creating dynamic tags based on values is a straightforward process that involves identifying key variables

Looking to create a template that can dynamically define native HTML tags based on a variable value. I attempted using a custom directive to swap out the initially defined tag with the desired new one, similar to what is discussed here. While this approac ...

What is the best way to showcase the chosen information?

Typically, I maintain a list of specific entries within cards. When clicking on one of the records in the card, the corresponding data table is supposed to be displayed below that record. An issue arises where after selecting a record and displaying its d ...

Firestore rules restrict access to the data, however the Angular project is still able to retrieve the collection - ERROR Error: Insufficient permissions or missing

I am currently working on an Angular project that is connected to a Firestore database. Within the database, there is a collection called users, and each document within this collection contains a nested collection named hugeCollection. I have updated the ...

When utilizing create-next-app, an error may occur stating that the produced JSX.Element cannot be assigned to a variable

After creating a new project with TypeScript using create-next-app, I encountered an error in the default homepage when opened in my IDE (WebStorm). The error message reads: "Initializer type () => JSX.Element is not assignable to variable type NextPa ...

What is the process for adding a highlighted area beneath a curve on a high chart?

I am working on creating a high chart with Angular 4 and I have a specific requirement to highlight certain portions of the Highchart. For example, in the image: In the image above, if a data point value drops below a certain limit (such as 0), it shoul ...

Exploring the World of Popper.js Modifiers

Within our React and Typescript application, we integrate the react-datepicker library, which utilizes popper.js. Attempting to configure PopperModifiers according to the example provided here: . Despite replicating the exact setup from the example, a typ ...

Convert TypeScript interface property types to unions

I am in possession of an interface that holds keys of various types, and I am interested in creating a new type based on the types of those keys. interface SomeType { abc: string; def: number; ghi: boolean; } The type I want to create: type SomeOthe ...

Using TypeScript with Angular: encountering a ReferenceError stating that the System object is not defined in the System

I attempted to follow a tutorial to set up Angular 2 with TypeScript from the following link: https://angular.io/guide/quickstart However, I encountered the following error: ReferenceError: System is not defined System.config I am uncertain why this e ...

Navigating the parent navController in Ionic 2: A step-by-step guide

I'm currently honing my skills in Ionic 2 by creating a basic app, but I've encountered an issue that has me stumped. The app features an ion-nav element for the login page, then transitions to a tabs navigator after successful login. The struct ...

Positioning Bootstrap 4 elements within Angular application views

As an Angular 7 developer, I'm currently working on creating a blog template using Bootstrap 4 within my application. The layout consists of two cards placed in a row - one for displaying the blog posts and the other for showcasing different categorie ...

Angular 6 Time Discrepancy

I am trying to display real-time time difference on the UI that updates every second. Here is what I have attempted: component.ts import { Component, OnInit } from '@angular/core'; import 'rxjs/add/observable/of'; import 'rxjs/a ...

Exploring Relative Imports with Typescript and Node.js

As I embark on building a node app with TypeScript, my goal is to deploy the build folder independently with its own set of node_modules. Let me outline the structure of my project: root |-node_modules |-src | |-index.ts | |-other.ts |-build | |-node_mo ...

Tips for restricting the signature within a function depending on the argument's value

Trying to consolidate interface methods into a single function with an additional operation parameter. The function can be called as expected, but struggling to narrow the signature within the function. Found some assistance in this SO post, but still enco ...

Guide on retrieving a nested JSON array to extract a comprehensive list of values from every parameter within every object

A JSON file with various data points is available: { "success": true, "dataPoints": [{ "count_id": 4, "avg_temperature": 2817, "startTime": "00:00:00", "endTime": "00:19:59.999" }, ... I am trying to extract all the values of & ...

Enhance Angular Material Select with Tooltip on Ellipsis Directive

In the midst of my Angular 9 project journey, I encountered a directive designed to add a matTooltip if an element's text is truncated (ending in ellipsis due to overflow). Everything was running smoothly with this directive until I introduced a mate ...