This is an ESRI Add-In, Google Map Channels tool. You may close your arc products and double click the tool to install or place the file in a folder and use the Add-Ins option folder in ArcMap. When you restart Arcmap make sure to check the Google Extension(this causes the tool to be inoperable when in layout). To use this tool click on the tool then click in your map somewhere near a road your default internet explorer will open Google map channels at the place you clicked. Beware of the direction, direction is not coded in the tool so you may have to pan around to face the desired direction. Enjoy
@Wes - Could you post the .py file that you used to make the tool? It works great. I have a few ideas that I would like to add to it if possible. Thanks
import arcpy import pythonaddins import functools import os import threading import webbrowser arcpy.env.overwriteOutput = True def run_in_other_thread(function): @functools.wraps(function) def fn_(*args, **kwargs): thread = threading.Thread(target=function, args=args, kwargs=kwargs) thread.start() thread.join() return fn_ openbrowser = run_in_other_thread(webbrowser.open) class GoogleExtension(object): """Implementation for GoogleTool_addin.extension10 (Extension)""" def activeViewChanged(self): mxd = arcpy.mapping.MapDocument('current') active_view = mxd.activeView # tool1 is the tool ID (without the namespace prefix) if active_view == 'PAGE_LAYOUT': tool.enabled = False else: tool.enabled = True arcpy.RefreshActiveView() return class MapChannels(object): """Implementation for GoogleTool_gmcaddin.tool (Tool)""" def __init__(self): self.enabled = True self.shape = "NONE" def onMouseUpMap(self, x, y, button, shift): mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd)[0] dfsr = df.spatialReference if len(dfsr.type) > 0: pass else: msgbox = pythonaddins.MessageBox('No Coordinate System','Oops!',0) print msgbox sys.exit("Unknown projection") in_memory = "in_memory" fcname = "pnt_name4444aj" #x,y = [2424419.971, 864749.537] fc = arcpy.CreateFeatureclass_management(in_memory,fcname,"POINT","","DISABLED","DISABLED",dfsr) rows = arcpy.da.InsertCursor(fc,["SHAPE@XY"]) xy = (x,y) rows.insertRow([xy]) del rows sr = 'GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]' for row in arcpy.da.SearchCursor(fc, ["SHAPE@XY"],"",sr): adx,ady = row[0] #print("{0}, {1}".format(adx, ady)) for lyr in arcpy.mapping.ListLayers(mxd, "", df): if lyr.name == fcname: arcpy.mapping.RemoveLayer(df, lyr) url = "http://data.mapchannels.com/mm/dual2/map.htm?x=" + str(adx) + "&y="+ str(ady) + "&z=16&xb=" + str(adx) + "&yb="+ str(ady) + "&bar=1&mw=1&gm=0&ve=2&sv=1"#&svb="+ String(computeAngle2(startPt,lastPnt)) openbrowser(url) del mxd,df,dfsr,in_memory,fc,xy,sr,row,url