Google Maps: Polygon and Marker Z-Index The 2019 Stack Overflow Developer Survey Results Are InGoogle Map zIndex of PolylineGoogle Maps Polygone “clickable: false” shows no effectGoogle maps polyline click between two narrow markers is wrongHow to insert an item into an array at a specific index (JavaScript)?Google Maps API v3: How to remove all markers?How to disable mouse scroll wheel scaling with Google Maps APIWhy does Google prepend while(1); to their JSON responses?Google Maps JS API v3 - Simple Multiple Marker ExampleMax initial zIndex for Google Maps V3 markersGoogle Maps API V3 - KML Layer vs. JS created PolygonsSpecify the z-index of Google Map MarkersHow to remove circle,polygon from google map completelyAdd and Remove Marker For Polygon Shape Change on Google Map
Return to UK after having been refused entry years ago
Can we generate random numbers using irrational numbers like π and e?
Worn-tile Scrabble
What is the meaning of Triage in Cybersec world?
How to answer pointed "are you quitting" questioning when I don't want them to suspect
What is the meaning of the verb "bear" in this context?
Can a rogue use sneak attack with weapons that have the thrown property even if they are not thrown?
Why isn't the circumferential light around the M87 black hole's event horizon symmetric?
Loose spokes after only a few rides
Can a flute soloist sit?
What do hard-Brexiteers want with respect to the Irish border?
Is "plugging out" electronic devices an American expression?
Why do UK politicians seemingly ignore opinion polls on Brexit?
Multiply Two Integer Polynomials
Protecting Dualbooting Windows from dangerous code (like rm -rf)
Identify boardgame from Big movie
Why isn't airport relocation done gradually?
What tool would a Roman-age civilization have for the breaking of silver and other metals into dust?
Feature engineering suggestion required
Landlord wants to switch my lease to a "Land contract" to "get back at the city"
Did Section 31 appear in Star Trek: The Next Generation?
Does the shape of a die affect the probability of a number being rolled?
Pokemon Turn Based battle (Python)
Did 3000BC Egyptians use meteoric iron weapons?
Google Maps: Polygon and Marker Z-Index
The 2019 Stack Overflow Developer Survey Results Are InGoogle Map zIndex of PolylineGoogle Maps Polygone “clickable: false” shows no effectGoogle maps polyline click between two narrow markers is wrongHow to insert an item into an array at a specific index (JavaScript)?Google Maps API v3: How to remove all markers?How to disable mouse scroll wheel scaling with Google Maps APIWhy does Google prepend while(1); to their JSON responses?Google Maps JS API v3 - Simple Multiple Marker ExampleMax initial zIndex for Google Maps V3 markersGoogle Maps API V3 - KML Layer vs. JS created PolygonsSpecify the z-index of Google Map MarkersHow to remove circle,polygon from google map completelyAdd and Remove Marker For Polygon Shape Change on Google Map
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I have a Google Map with many markers (yellow circles), and I implemented a tool to draw polygons over the markers. However, the polygon is behind the markers while drawing (and stays behind when complete).
I tried changing the ZIndex in both markers and polygons, but it seems to alter the way in which markers are shown with respect to other markers, and not with respect to polygons. I also tried
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
How can I bring the polygon to the front?
javascript google-maps google-maps-api-3
add a comment |
I have a Google Map with many markers (yellow circles), and I implemented a tool to draw polygons over the markers. However, the polygon is behind the markers while drawing (and stays behind when complete).
I tried changing the ZIndex in both markers and polygons, but it seems to alter the way in which markers are shown with respect to other markers, and not with respect to polygons. I also tried
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
How can I bring the polygon to the front?
javascript google-maps google-maps-api-3
You may be able to use Overlays. I have no experience with Google's API, but I could show you how to do it in Bing Maps.
– Corey Ogburn
Mar 28 '13 at 3:03
add a comment |
I have a Google Map with many markers (yellow circles), and I implemented a tool to draw polygons over the markers. However, the polygon is behind the markers while drawing (and stays behind when complete).
I tried changing the ZIndex in both markers and polygons, but it seems to alter the way in which markers are shown with respect to other markers, and not with respect to polygons. I also tried
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
How can I bring the polygon to the front?
javascript google-maps google-maps-api-3
I have a Google Map with many markers (yellow circles), and I implemented a tool to draw polygons over the markers. However, the polygon is behind the markers while drawing (and stays behind when complete).
I tried changing the ZIndex in both markers and polygons, but it seems to alter the way in which markers are shown with respect to other markers, and not with respect to polygons. I also tried
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
How can I bring the polygon to the front?
javascript google-maps google-maps-api-3
javascript google-maps google-maps-api-3
edited Oct 19 '13 at 13:00
Nicolas
asked Mar 26 '13 at 0:32
NicolasNicolas
1,02821532
1,02821532
You may be able to use Overlays. I have no experience with Google's API, but I could show you how to do it in Bing Maps.
– Corey Ogburn
Mar 28 '13 at 3:03
add a comment |
You may be able to use Overlays. I have no experience with Google's API, but I could show you how to do it in Bing Maps.
– Corey Ogburn
Mar 28 '13 at 3:03
You may be able to use Overlays. I have no experience with Google's API, but I could show you how to do it in Bing Maps.
– Corey Ogburn
Mar 28 '13 at 3:03
You may be able to use Overlays. I have no experience with Google's API, but I could show you how to do it in Bing Maps.
– Corey Ogburn
Mar 28 '13 at 3:03
add a comment |
4 Answers
4
active
oldest
votes
This won't solve the problem, but it will explain why the things you tried didn't work.
The Maps API uses several layers known as MapPanes in a fixed Z order:
- 4: floatPane (infowindow)
- 3: overlayMouseTarget (mouse events)
- 2: markerLayer (marker images)
- 1: overlayLayer (polygons, polylines, ground overlays, tile layer overlays)
- 0: mapPane (lowest pane above the map tiles)
So the marker images in layer 2 are always above the polygons in layer 1. When you fiddle with the z-index on the markers, you're just adjusting them relative to each other. That doesn't do any good, because they are all in a layer above the polygons.
What can you do about this? The only solution I can think of is to create your own OverlayView for the polygons or the markers so you can put them in the MapPane you want.
Are your markers clickable, or are they just static images? If they aren't clickable, you could possibly get away with drawing them yourself in the mapPane
. Then your polygons would be above them. Or the opposite: you could draw the polygons yourself in one of the higher layers, maybe in floatShadow
.
The problem then is you have to do all of your own drawing, either with a canvas
element or with DOM images. And your own mouse hit testing too if they are clickable.
There aren't a lot of good OverlayView
examples out there, but I'll mention one of my own: a little library I wrote a while ago called PolyGonzo, where the polygonzo.js file has the OverlayView
implementation. The code isn't great - I threw it together in too much of a hurry - but it may help give you some ideas.
Thank you for the answer. The markers are clickable, and the polygons are drawn by the users and that is why I wanted to go with the google.maps.drawing library.
– Nicolas
Mar 30 '13 at 13:15
1
Bummer. Yeah, the way they put polygons in theoverlayLayer
makes it tricky. You either have to implement your own polygons or your own markers. No easy solution here. You could implement your own markers and put them way down in themapLayer
, with matching transparent elements in theoverlayMouseTarget
layer for mouse hit testing.
– Michael Geary
Mar 30 '13 at 21:49
1
Partially transparent markers might be a possible compromise, allowing the underlying polygon to be seen under the markers. Not perfect, but simple with custom .png image(s).
– Beetroot-Beetroot
Nov 2 '13 at 16:39
@MichaelGeary Thank you very much!! Saved my time
– blackDelta-Δ
Jul 27 '15 at 12:34
add a comment |
I know this question is old but for future users I wanna share my approach:
Shapes with higher zIndex
values displaying in front of those with lower values. For this example I am using Polygon but is similar for other shapes:
var globalZIndex = 1; //Be sure you can access anywhere
//... Other instructions for creating map, polygon and any else
polygon.setOptions( zIndex: globalZIndex++ );
Notice that markers have a method setZIndex(zIndex:number)
.
code example makes it clear
– Developerium
Feb 7 '16 at 6:41
FIX: setZIndex(number)
– Zhenya
Feb 9 '16 at 21:12
add a comment |
Hello for me A found this solution
for Create Symbol
var lineSymbol =
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: '#181727',
fillColor: '#50040B',
;
var dashedSymbol =
path: 'M 0,-1 0,1',
strokeOpacity: 1,
scale: 4
;
[![function MakeMarker(pinColor)" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
return pinImage;
][1]][1]
FlowMarkersdashed(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxphysique'][j]['colorFlux'], dashedSymbol, j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And For Create a Flow Marker Simple
FlowMarkers(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxinformation'][j]['colorFlux'], lineSymbol,j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And Finally this is my result
add a comment |
Change this method call:
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
to this:
polygon.setZIndex(4);
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f15627325%2fgoogle-maps-polygon-and-marker-z-index%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
This won't solve the problem, but it will explain why the things you tried didn't work.
The Maps API uses several layers known as MapPanes in a fixed Z order:
- 4: floatPane (infowindow)
- 3: overlayMouseTarget (mouse events)
- 2: markerLayer (marker images)
- 1: overlayLayer (polygons, polylines, ground overlays, tile layer overlays)
- 0: mapPane (lowest pane above the map tiles)
So the marker images in layer 2 are always above the polygons in layer 1. When you fiddle with the z-index on the markers, you're just adjusting them relative to each other. That doesn't do any good, because they are all in a layer above the polygons.
What can you do about this? The only solution I can think of is to create your own OverlayView for the polygons or the markers so you can put them in the MapPane you want.
Are your markers clickable, or are they just static images? If they aren't clickable, you could possibly get away with drawing them yourself in the mapPane
. Then your polygons would be above them. Or the opposite: you could draw the polygons yourself in one of the higher layers, maybe in floatShadow
.
The problem then is you have to do all of your own drawing, either with a canvas
element or with DOM images. And your own mouse hit testing too if they are clickable.
There aren't a lot of good OverlayView
examples out there, but I'll mention one of my own: a little library I wrote a while ago called PolyGonzo, where the polygonzo.js file has the OverlayView
implementation. The code isn't great - I threw it together in too much of a hurry - but it may help give you some ideas.
Thank you for the answer. The markers are clickable, and the polygons are drawn by the users and that is why I wanted to go with the google.maps.drawing library.
– Nicolas
Mar 30 '13 at 13:15
1
Bummer. Yeah, the way they put polygons in theoverlayLayer
makes it tricky. You either have to implement your own polygons or your own markers. No easy solution here. You could implement your own markers and put them way down in themapLayer
, with matching transparent elements in theoverlayMouseTarget
layer for mouse hit testing.
– Michael Geary
Mar 30 '13 at 21:49
1
Partially transparent markers might be a possible compromise, allowing the underlying polygon to be seen under the markers. Not perfect, but simple with custom .png image(s).
– Beetroot-Beetroot
Nov 2 '13 at 16:39
@MichaelGeary Thank you very much!! Saved my time
– blackDelta-Δ
Jul 27 '15 at 12:34
add a comment |
This won't solve the problem, but it will explain why the things you tried didn't work.
The Maps API uses several layers known as MapPanes in a fixed Z order:
- 4: floatPane (infowindow)
- 3: overlayMouseTarget (mouse events)
- 2: markerLayer (marker images)
- 1: overlayLayer (polygons, polylines, ground overlays, tile layer overlays)
- 0: mapPane (lowest pane above the map tiles)
So the marker images in layer 2 are always above the polygons in layer 1. When you fiddle with the z-index on the markers, you're just adjusting them relative to each other. That doesn't do any good, because they are all in a layer above the polygons.
What can you do about this? The only solution I can think of is to create your own OverlayView for the polygons or the markers so you can put them in the MapPane you want.
Are your markers clickable, or are they just static images? If they aren't clickable, you could possibly get away with drawing them yourself in the mapPane
. Then your polygons would be above them. Or the opposite: you could draw the polygons yourself in one of the higher layers, maybe in floatShadow
.
The problem then is you have to do all of your own drawing, either with a canvas
element or with DOM images. And your own mouse hit testing too if they are clickable.
There aren't a lot of good OverlayView
examples out there, but I'll mention one of my own: a little library I wrote a while ago called PolyGonzo, where the polygonzo.js file has the OverlayView
implementation. The code isn't great - I threw it together in too much of a hurry - but it may help give you some ideas.
Thank you for the answer. The markers are clickable, and the polygons are drawn by the users and that is why I wanted to go with the google.maps.drawing library.
– Nicolas
Mar 30 '13 at 13:15
1
Bummer. Yeah, the way they put polygons in theoverlayLayer
makes it tricky. You either have to implement your own polygons or your own markers. No easy solution here. You could implement your own markers and put them way down in themapLayer
, with matching transparent elements in theoverlayMouseTarget
layer for mouse hit testing.
– Michael Geary
Mar 30 '13 at 21:49
1
Partially transparent markers might be a possible compromise, allowing the underlying polygon to be seen under the markers. Not perfect, but simple with custom .png image(s).
– Beetroot-Beetroot
Nov 2 '13 at 16:39
@MichaelGeary Thank you very much!! Saved my time
– blackDelta-Δ
Jul 27 '15 at 12:34
add a comment |
This won't solve the problem, but it will explain why the things you tried didn't work.
The Maps API uses several layers known as MapPanes in a fixed Z order:
- 4: floatPane (infowindow)
- 3: overlayMouseTarget (mouse events)
- 2: markerLayer (marker images)
- 1: overlayLayer (polygons, polylines, ground overlays, tile layer overlays)
- 0: mapPane (lowest pane above the map tiles)
So the marker images in layer 2 are always above the polygons in layer 1. When you fiddle with the z-index on the markers, you're just adjusting them relative to each other. That doesn't do any good, because they are all in a layer above the polygons.
What can you do about this? The only solution I can think of is to create your own OverlayView for the polygons or the markers so you can put them in the MapPane you want.
Are your markers clickable, or are they just static images? If they aren't clickable, you could possibly get away with drawing them yourself in the mapPane
. Then your polygons would be above them. Or the opposite: you could draw the polygons yourself in one of the higher layers, maybe in floatShadow
.
The problem then is you have to do all of your own drawing, either with a canvas
element or with DOM images. And your own mouse hit testing too if they are clickable.
There aren't a lot of good OverlayView
examples out there, but I'll mention one of my own: a little library I wrote a while ago called PolyGonzo, where the polygonzo.js file has the OverlayView
implementation. The code isn't great - I threw it together in too much of a hurry - but it may help give you some ideas.
This won't solve the problem, but it will explain why the things you tried didn't work.
The Maps API uses several layers known as MapPanes in a fixed Z order:
- 4: floatPane (infowindow)
- 3: overlayMouseTarget (mouse events)
- 2: markerLayer (marker images)
- 1: overlayLayer (polygons, polylines, ground overlays, tile layer overlays)
- 0: mapPane (lowest pane above the map tiles)
So the marker images in layer 2 are always above the polygons in layer 1. When you fiddle with the z-index on the markers, you're just adjusting them relative to each other. That doesn't do any good, because they are all in a layer above the polygons.
What can you do about this? The only solution I can think of is to create your own OverlayView for the polygons or the markers so you can put them in the MapPane you want.
Are your markers clickable, or are they just static images? If they aren't clickable, you could possibly get away with drawing them yourself in the mapPane
. Then your polygons would be above them. Or the opposite: you could draw the polygons yourself in one of the higher layers, maybe in floatShadow
.
The problem then is you have to do all of your own drawing, either with a canvas
element or with DOM images. And your own mouse hit testing too if they are clickable.
There aren't a lot of good OverlayView
examples out there, but I'll mention one of my own: a little library I wrote a while ago called PolyGonzo, where the polygonzo.js file has the OverlayView
implementation. The code isn't great - I threw it together in too much of a hurry - but it may help give you some ideas.
edited Oct 15 '18 at 22:47
answered Mar 28 '13 at 4:27
Michael GearyMichael Geary
23.4k74460
23.4k74460
Thank you for the answer. The markers are clickable, and the polygons are drawn by the users and that is why I wanted to go with the google.maps.drawing library.
– Nicolas
Mar 30 '13 at 13:15
1
Bummer. Yeah, the way they put polygons in theoverlayLayer
makes it tricky. You either have to implement your own polygons or your own markers. No easy solution here. You could implement your own markers and put them way down in themapLayer
, with matching transparent elements in theoverlayMouseTarget
layer for mouse hit testing.
– Michael Geary
Mar 30 '13 at 21:49
1
Partially transparent markers might be a possible compromise, allowing the underlying polygon to be seen under the markers. Not perfect, but simple with custom .png image(s).
– Beetroot-Beetroot
Nov 2 '13 at 16:39
@MichaelGeary Thank you very much!! Saved my time
– blackDelta-Δ
Jul 27 '15 at 12:34
add a comment |
Thank you for the answer. The markers are clickable, and the polygons are drawn by the users and that is why I wanted to go with the google.maps.drawing library.
– Nicolas
Mar 30 '13 at 13:15
1
Bummer. Yeah, the way they put polygons in theoverlayLayer
makes it tricky. You either have to implement your own polygons or your own markers. No easy solution here. You could implement your own markers and put them way down in themapLayer
, with matching transparent elements in theoverlayMouseTarget
layer for mouse hit testing.
– Michael Geary
Mar 30 '13 at 21:49
1
Partially transparent markers might be a possible compromise, allowing the underlying polygon to be seen under the markers. Not perfect, but simple with custom .png image(s).
– Beetroot-Beetroot
Nov 2 '13 at 16:39
@MichaelGeary Thank you very much!! Saved my time
– blackDelta-Δ
Jul 27 '15 at 12:34
Thank you for the answer. The markers are clickable, and the polygons are drawn by the users and that is why I wanted to go with the google.maps.drawing library.
– Nicolas
Mar 30 '13 at 13:15
Thank you for the answer. The markers are clickable, and the polygons are drawn by the users and that is why I wanted to go with the google.maps.drawing library.
– Nicolas
Mar 30 '13 at 13:15
1
1
Bummer. Yeah, the way they put polygons in the
overlayLayer
makes it tricky. You either have to implement your own polygons or your own markers. No easy solution here. You could implement your own markers and put them way down in the mapLayer
, with matching transparent elements in the overlayMouseTarget
layer for mouse hit testing.– Michael Geary
Mar 30 '13 at 21:49
Bummer. Yeah, the way they put polygons in the
overlayLayer
makes it tricky. You either have to implement your own polygons or your own markers. No easy solution here. You could implement your own markers and put them way down in the mapLayer
, with matching transparent elements in the overlayMouseTarget
layer for mouse hit testing.– Michael Geary
Mar 30 '13 at 21:49
1
1
Partially transparent markers might be a possible compromise, allowing the underlying polygon to be seen under the markers. Not perfect, but simple with custom .png image(s).
– Beetroot-Beetroot
Nov 2 '13 at 16:39
Partially transparent markers might be a possible compromise, allowing the underlying polygon to be seen under the markers. Not perfect, but simple with custom .png image(s).
– Beetroot-Beetroot
Nov 2 '13 at 16:39
@MichaelGeary Thank you very much!! Saved my time
– blackDelta-Δ
Jul 27 '15 at 12:34
@MichaelGeary Thank you very much!! Saved my time
– blackDelta-Δ
Jul 27 '15 at 12:34
add a comment |
I know this question is old but for future users I wanna share my approach:
Shapes with higher zIndex
values displaying in front of those with lower values. For this example I am using Polygon but is similar for other shapes:
var globalZIndex = 1; //Be sure you can access anywhere
//... Other instructions for creating map, polygon and any else
polygon.setOptions( zIndex: globalZIndex++ );
Notice that markers have a method setZIndex(zIndex:number)
.
code example makes it clear
– Developerium
Feb 7 '16 at 6:41
FIX: setZIndex(number)
– Zhenya
Feb 9 '16 at 21:12
add a comment |
I know this question is old but for future users I wanna share my approach:
Shapes with higher zIndex
values displaying in front of those with lower values. For this example I am using Polygon but is similar for other shapes:
var globalZIndex = 1; //Be sure you can access anywhere
//... Other instructions for creating map, polygon and any else
polygon.setOptions( zIndex: globalZIndex++ );
Notice that markers have a method setZIndex(zIndex:number)
.
code example makes it clear
– Developerium
Feb 7 '16 at 6:41
FIX: setZIndex(number)
– Zhenya
Feb 9 '16 at 21:12
add a comment |
I know this question is old but for future users I wanna share my approach:
Shapes with higher zIndex
values displaying in front of those with lower values. For this example I am using Polygon but is similar for other shapes:
var globalZIndex = 1; //Be sure you can access anywhere
//... Other instructions for creating map, polygon and any else
polygon.setOptions( zIndex: globalZIndex++ );
Notice that markers have a method setZIndex(zIndex:number)
.
I know this question is old but for future users I wanna share my approach:
Shapes with higher zIndex
values displaying in front of those with lower values. For this example I am using Polygon but is similar for other shapes:
var globalZIndex = 1; //Be sure you can access anywhere
//... Other instructions for creating map, polygon and any else
polygon.setOptions( zIndex: globalZIndex++ );
Notice that markers have a method setZIndex(zIndex:number)
.
answered Nov 13 '14 at 14:46
Manuel LoperaManuel Lopera
1,41311115
1,41311115
code example makes it clear
– Developerium
Feb 7 '16 at 6:41
FIX: setZIndex(number)
– Zhenya
Feb 9 '16 at 21:12
add a comment |
code example makes it clear
– Developerium
Feb 7 '16 at 6:41
FIX: setZIndex(number)
– Zhenya
Feb 9 '16 at 21:12
code example makes it clear
– Developerium
Feb 7 '16 at 6:41
code example makes it clear
– Developerium
Feb 7 '16 at 6:41
FIX: setZIndex(number)
– Zhenya
Feb 9 '16 at 21:12
FIX: setZIndex(number)
– Zhenya
Feb 9 '16 at 21:12
add a comment |
Hello for me A found this solution
for Create Symbol
var lineSymbol =
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: '#181727',
fillColor: '#50040B',
;
var dashedSymbol =
path: 'M 0,-1 0,1',
strokeOpacity: 1,
scale: 4
;
[![function MakeMarker(pinColor)" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
return pinImage;
][1]][1]
FlowMarkersdashed(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxphysique'][j]['colorFlux'], dashedSymbol, j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And For Create a Flow Marker Simple
FlowMarkers(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxinformation'][j]['colorFlux'], lineSymbol,j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And Finally this is my result
add a comment |
Hello for me A found this solution
for Create Symbol
var lineSymbol =
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: '#181727',
fillColor: '#50040B',
;
var dashedSymbol =
path: 'M 0,-1 0,1',
strokeOpacity: 1,
scale: 4
;
[![function MakeMarker(pinColor)" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
return pinImage;
][1]][1]
FlowMarkersdashed(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxphysique'][j]['colorFlux'], dashedSymbol, j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And For Create a Flow Marker Simple
FlowMarkers(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxinformation'][j]['colorFlux'], lineSymbol,j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And Finally this is my result
add a comment |
Hello for me A found this solution
for Create Symbol
var lineSymbol =
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: '#181727',
fillColor: '#50040B',
;
var dashedSymbol =
path: 'M 0,-1 0,1',
strokeOpacity: 1,
scale: 4
;
[![function MakeMarker(pinColor)" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
return pinImage;
][1]][1]
FlowMarkersdashed(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxphysique'][j]['colorFlux'], dashedSymbol, j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And For Create a Flow Marker Simple
FlowMarkers(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxinformation'][j]['colorFlux'], lineSymbol,j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And Finally this is my result
Hello for me A found this solution
for Create Symbol
var lineSymbol =
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: '#181727',
fillColor: '#50040B',
;
var dashedSymbol =
path: 'M 0,-1 0,1',
strokeOpacity: 1,
scale: 4
;
[![function MakeMarker(pinColor)" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
return pinImage;
][1]][1]
FlowMarkersdashed(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxphysique'][j]['colorFlux'], dashedSymbol, j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And For Create a Flow Marker Simple
FlowMarkers(new google.maps.LatLng(positionorigin[0], positionorigin[1]),
new google.maps.LatLng(positiondestination[0], positiondestination[1]), myObject[i]['flowfluxinformation'][j]['colorFlux'], lineSymbol,j);
function FlowMarkersdashed(latlngOrgin, latlngDest, ColorFlow, Symbol, indexvar)
var flightPlanCoordinates = [
latlngOrgin,
lat: latlngOrgin.lat() + (indexvar) * 2, lng: latlngOrgin.lng(),
// lat: -18.142, lng: 178.431,
latlngDest,
];
var line = new google.maps.Polyline(
path: flightPlanCoordinates,
strokeOpacity: 0,
icons: [
icon: Symbol,
// offset: '100%',
offset: '0',
repeat: '20px'
// repeat: '20px'
],
strokeColor: "#"+ColorFlow,
geodesic: true,
// editable: true,
map: map
);
And Finally this is my result
answered May 20 '16 at 12:57
Mourad MAMASSIMourad MAMASSI
464812
464812
add a comment |
add a comment |
Change this method call:
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
to this:
polygon.setZIndex(4);
add a comment |
Change this method call:
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
to this:
polygon.setZIndex(4);
add a comment |
Change this method call:
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
to this:
polygon.setZIndex(4);
Change this method call:
polygon.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
to this:
polygon.setZIndex(4);
edited May 22 '14 at 12:44
legoscia
29.4k1185117
29.4k1185117
answered May 22 '14 at 12:27
fixerfixer
11
11
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f15627325%2fgoogle-maps-polygon-and-marker-z-index%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You may be able to use Overlays. I have no experience with Google's API, but I could show you how to do it in Bing Maps.
– Corey Ogburn
Mar 28 '13 at 3:03